Mx.*_*Mx. 21 c# printing pdf winforms
我试图解决这个问题将近2天.网上有很多或更少的好解决方案,但没有一个完美适合我的任务.
使用Forms.WebBrowser执行此操作
如果我们安装了Adobe Reader,则有一个插件可以在webbrowser中显示PDF.有了这个解决方案,我们有一个很好的预览和webbrowserControlName.Print()我们可以触发控件来打印其内容.
问题 - 我们还有一个PrintDialog.
使用start参数启动AcroRd32.exe
以下CMD命令让我们使用Adobe Reader打印PDF.
InsertPathTo ..\AcroRd32.exe/t"C:\ sample.pdf""\ printerNetwork\printerName"
问题 - 我们需要AcroRd32.exe的绝对路径 有一个Adobe Reader Window打开,必须打开它,直到打印任务准备就绪.
使用Windows预设
Process process = new Process();
process.StartInfo.FileName = pathToPdf;
process.StartInfo.Verb = "printto";
process.StartInfo.Arguments = "\"" + printerName + "\"";
process.Start();
process.WaitForInputIdle();
process.Kill();
Run Code Online (Sandbox Code Playgroud)
问题 - 仍然有一个Adobe Reader窗口弹出,但在打印完成后它通常会自动关闭.
解决方案 - 说服客户使用福昕阅读器(不要使用最后两行代码).
将PDF页面转换为Drawing.Image
我不知道怎么用代码来做这件事,但是当我让它上班时剩下的只是小菜一碟.Printing.PrintDocument可以满足所有需求.
最诚挚的问候,马克斯
我能找到的最灵活,最简单和最佳性能的方法是使用GhostScript.它可以通过打印机名称直接打印到Windows打印机.
"C:\ Program Files\gs\gs9.07\bin\gswin64c.exe"-dPrinted -dBATCH -dNOPAUSE -sDEVICE = mswinpr2 -dNoCancel -sOutputFile ="%printer%printer name "" pdfdocument.pdf "
添加这些开关可将文档缩小为A4页面.
-sPAPERSIZE = a4 -dPDFFitPage
Gav*_*vin -1
使用类怎么样PrintDocument
?
http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.aspx
您只需传递要打印的文件的文件名(基于示例)。
华泰
归档时间: |
|
查看次数: |
66968 次 |
最近记录: |