C# – 如何使用PrintDocument以编程方式打印现有PDF文件

我想用pdf打印机再次打印现有的pdf文件。

我尝试使用PrintDocument。 但是如何告诉PrintDocument现有文件的名称?

提前致谢!

有几种方法可以将现有文件打印到不同的打印机。 还有几个第三方库。 有些是有偿的,有些是免费的。 但是,我将解释我在2天后实现它的方式。

安装nuget包PdfiumViewer。 但是不要安装最新版本,因为你必须为pdfium.dll安装另一个软件包,这是忙乱的。

Install-Package PdfiumViewer -Version 2.10.0 

此版本附带pdfium.dll文件,因此您无需单独安装它。 展开解决方案资源管理器,右键单击x64和x86文件夹中的pdfium.dll。 转到属性并始终将“ 复制到输出目录”=“复制”设置

Solution Explorer的图片 现在设置已完成,您可以继续使用代码。

  var path = @"path\file.pdf"; using (var document = PdfDocument.Load(path)) { using (var printDocument = document.CreatePrintDocument()) { printDocument.PrinterSettings.PrintFileName = "Letter_SkidTags_Report_9ae93aa7-4359-444e-a033-eb5bf17f5ce6.pdf"; printDocument.PrinterSettings.PrinterName = @"printerName"; printDocument.DocumentName = "file.pdf"; printDocument.PrinterSettings.PrintFileName = "file.pdf"; printDocument.PrintController = new StandardPrintController(); printDocument.Print(); } }