如何自动打印 PDF 文档
自动打印 PDF 文档是各种应用程序中的常见任务。在本文中,我们将探讨如何高效地将 PDF 文件发送到打印机队列并直接从代码中打印它们。
.NET Windows 窗体方法
对于在 Windows XP 上运行的 Windows Forms .NET 4 应用程序,一种方法是利用命令行来打印 PDF 文件。实现方法如下:
using System.Diagnostics; using System.IO; public void SendToPrinter(string filePath) { // Convert full file path to short path for command line use string shortPath = Path.GetShortPathName(filePath); // Prepare the command line arguments string args = $"/p \"{shortPath}\""; // Create a new Process object Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.Arguments = "/C start " + args; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; // Execute the command line process.Start(); }
使用 PdfiumViewer 的增强型解决方案
另一个特别适合 PDF 打印的选项是利用 Google Pdfium 库及其 . NET 包装器,PdfiumViewer。这个开源库提供了强大的 PDF 打印功能:
using PdfiumViewer; public bool PrintPDF( string printer, string paperName, string filePath, int copies) { try { // Create printer settings var printerSettings = new PrinterSettings { PrinterName = printer, Copies = (short)copies, }; // Create page settings for paper size var pageSettings = new PageSettings(printerSettings) { Margins = new Margins(0, 0, 0, 0), }; foreach (PaperSize paperSize in printerSettings.PaperSizes) { if (paperSize.PaperName == paperName) { pageSettings.PaperSize = paperSize; break; } } // Print PDF document using (var document = PdfDocument.Load(filePath)) { using (var printDocument = document.CreatePrintDocument()) { printDocument.PrinterSettings = printerSettings; printDocument.DefaultPageSettings = pageSettings; printDocument.PrintController = new StandardPrintController(); printDocument.Print(); } } return true; } catch { return false; } }
这种增强的方法提供了对打印过程的更多控制,并且无需用户交互即可实现静默打印。
以上是如何从 .NET 应用程序自动打印 PDF?的详细内容。更多信息请关注PHP中文网其他相关文章!