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官网咨询大牛们,对大家的的提议我一一进行了研究,总结如下: 要实现批量打印可以有两个办法: 一是利用专业的报表程序,能实现十分复杂的 ...
最新文章
- java数组 相同颜色距离最远的_java-数组列表并找到具有相同编号的最长子...
- air java_Air 调用本地化java程序
- 腾讯 Web UI 解决方案 QMUI Web —— 探索与沉淀
- java判断对象已死_Java的JVM判断对象已死的基本算法分析
- 将安全信息应用到以下对象时发生错误 拒绝访问_手机资讯:拒绝「京东金融」事件再次发生|如何避免iPhone 应用私自获取照片...
- access control java_Java Access Controller
- thymealf如何实现传单个变量给html_50个关于IPython的奇技淫巧
- 一个应用程序中最多只能有一个窗口java_在Windows 中,同时显示多个应用程序窗口的正确方法是 ______ 。_学小易找答案...
- 不属于python标准库的是_下列哪项不是Python标准库中处理到程序中参量的模块?...
- Unix操作系统常用命令
- 新版vip在线解析html源码
- Python函数练习题
- python下载urllib3_使用urllib3下载网页
- 彩色证件照片常用的红色、蓝色背景颜色值
- mysql数据库data没有新创建_如何从pandas datafram在MySQL数据库中创建新表
- Project(1)——创建数据库、实体类、用户注册的持久层
- 描述12个异性追求者(互动媒体技术作业)
- 【设计模式11】备忘录和解释器模式 SpelExpressionParser
- 浅析编程及类的本质、类的抽象
- 功夫熊猫:电子病历评级概述——总论
热门文章
- Web端即时通讯、消息推送的实现
- 阿里云态势感知以及安骑士分析
- mysql索引原理及查询优化
- 2022年全球与中国99.999%纯度氧化亚氮行业市场需求预测与投资战略规划分析报告
- 分享已个根据电影名称 下载电影海报的插件
- java计算机毕业设计冠军体育用品购物网站源码+mysql数据库+系统+lw文档+部署
- mysql 不同端口_mysql不同端口的连接
- Java开发多、单商户淘宝客+任务系统cps系统源码小程序app
- 批量将一个或多个 Word 文件按固定页数拆分成多个 Word 文件
- 消息中间件ActiveMQ 5:可持久化方式AMQ和KahaDB