c# printdialog 打印html,c# – ReportViewer.PrintDialog()在打印到Adobe PDF时抛出异常
我正在使用WinForms应用程序,该应用程序使用ReportViewer控件显示一些Reporting Services报告.在这些屏幕上,我们允许用户通过调用ReportViewer上的PrintDialog()方法来打印报表,如下所示:
_reportViewer.PrintDialog();
这在大多数情况下工作正常,它会打开标准的Windows打印对话框,用户选择要打印的打印机,然后进行打印.但是,当用户选择使用“Adobe PDF”打印到PDF时,它会抛出Win32Exception:指定的数据类型无效.用于选择保存pdf的位置的文件对话框甚至都没有出现.
这仅适用于Adobe PDF打印机.我安装了NitroPDF并使用了他们的PDF打印机,它没有问题.
有没有人知道可能导致这种情况发生的原因?
编辑:
这是堆栈跟踪:
at System.Drawing.Printing.StandardPrintController.OnStartPrint(PrintDocument document, PrintEventArgs e)
at System.Windows.Forms.PrintControllerWithStatusDialog.OnStartPrint(PrintDocument document, PrintEventArgs e)
at System.Drawing.Printing.PrintController.Print(PrintDocument document)
at System.Drawing.Printing.PrintDocument.Print()
at Microsoft.Reporting.WinForms.ReportViewer.PrintDialog(PrinterSettings printerSettings)
at Microsoft.Reporting.WinForms.ReportViewer.PrintDialog()
解决方法:
这并没有真正解决问题,而是在用户眼中解决了这个问题.
捕获PDF打印机抛出的错误,然后调用Reporting Services中内置的导出到PDF功能.即使打印到PDF打印机,它也不会在Winforms中出错.从用户的角度来看,他们像平常一样“打印到pdf”,体验是相同的.这是一个有效的工作.
标签:c,pdf,winforms,reporting-services
来源: https://codeday.me/bug/20190606/1189311.html
c# printdialog 打印html,c# – ReportViewer.PrintDialog()在打印到Adobe PDF时抛出异常相关推荐
- .NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现
原文:.NET环境下有关打印页面设置.打印机设置.打印预览对话框的实现 我个人认为,开发MIS,首先就得解决网格的问题,而开发工具为我们提供了如DataGrid.MSHFlexGrid的控件.其次,是 ...
- .NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现与应用(1)
From: http://blog.csdn.net/flygoldfish/article/details/77208 .NET环境下有关打印页面设置.打印机设置.打印预览对话框的实现 我个人认为, ...
- .Net环境下有关打印页面设置、打印机设置、打印预览对话框的实现(开源)---转
作者:周方勇 我个人认为,开发MIS,首先就得解决网格的问题,而开发工具为我们提供了如DataGrid.MSHFlexGrid的控件.其次,是打印的问题,将业务单据与数据报表打印出来.可想而知,即使一 ...
- php前面有人排队,PHP实现打印类(实现队列排队打印)
class Wprint{ //收集打印代码 private $data = array(); //处理打印代码 private $handle; public function __construc ...
- 邮件 自动打印 linux,Unix / Linux基本实用程序-打印,电子邮件
Unix / Linux基本实用程序-打印,电子邮件 在本章中,我们将详细讨论作为Unix的基本实用程序的Printing and Email.到目前为止,我们已经尝试了解Unix OS及其基本命令的 ...
- java线程 打印_Java多线程实战之交叉打印的两种方法
要求效果:先打印5次"printA-",再打印5次"printB-",每次打印间隔1秒,重复循环20次 方式一:使用wait()和notifyAll()方法 p ...
- Java:写2个线程,其中一个线程打印1-52,另一个线程打印A-Z,打印顺序应该是12A34B56C...5152Z。
写2个线程,其中一个线程打印1-52,另一个线程打印A-Z,打印顺序应该是12A34B56C...5152Z 多线程编程:使用Runnable接口实例创建线程.使用线程等待方法wait(): pack ...
- Adobe Acrobat 9.0“ PDFMaker无法找到Adobe PDF Printer 的打印驱动程序”解决办法
[问题症状] 安装Adobe Acrobat Perfessional 9.0后,office工具栏中会显示两个按钮.正常情况下,可以点击按钮直接将当前的office文档转化为pdf文档,同样IE工具 ...
- 利用lodop打印控件轻松实现批量打印
最近在做一个打印程序,要实现批量打印功能,在网上找了很多天,也在tp官网咨询大牛们,对大家的的提议我一一进行了研究,总结如下: 要实现批量打印可以有两个办法: 一是利用专业的报表程序,能实现十分复杂的 ...
最新文章
- python的基本语句_Python的基本语句
- mysqlevent每天,附答案
- Hadoop文件系统常用命令
- mysql十大报错_MySQL十大报错函数
- 皇牌空战无限服务器,《皇牌空战:无限》正式停服 一个搏击长空的时代终结[多图]...
- 计算机基础知识表格加密管理,【事业单位考试】计算机网络知识:数据加密技术之密钥管理...
- 【项目管理】人力资源计划和组建项目团队
- Mike and Chocolate Thieves(CF #361 Div. 2)
- [haoi2009]毛毛虫 树形dp
- mysql实现分组查询每个班级的前三名、每门课程的前三名
- 【BZOJ5316】【JSOI2018】绝地反击
- android 360度全景,android 360度全景展示
- python visual studio jetbrain_jetbrain系列IDE设置
- 装了svn桌面右键没有_右键菜单没有svn选项怎么办|win7 svn没有右键菜单怎么解决|svn添加到右键菜单方法...
- Python识别二维码条形码?用pyzbar一招搞掂(含代码)
- 8个提高摸鱼效率的python自动化脚本,提高打工人幸福感~
- 南京航空航天大学计算机考研经验分享,南京航空航天大学计算机考研试题.pdf...
- 求不定积分的系列题型(一)
- Unit 2: Linux/Unix Acquisition 2.1 Linux/Unix Acquistion Memory Acquisition
- 在群晖上使用小米或者360随身WiFi