小编Mx.*_*Mx.的帖子

如何用C#打印PDF

我试图解决这个问题将近2天.网上有很多或更少的好解决方案,但没有一个完美适合我的任务.

任务:

  • 以编程方式打印PDF
  • 用固定的打印机做
  • 不要让用户做多个Button_Click
  • 做到沉默 - 越多越好
  • 做客户端

第一解决方案

使用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可以满足所有需求.


任何人都想要获得一些Drawing.Image来自那些PDF或其他方法如何做到这一点?

最诚挚的问候,马克斯

c# printing pdf winforms

21
推荐指数
2
解决办法
7万
查看次数

标签 统计

c# ×1

pdf ×1

printing ×1

winforms ×1