首頁 >後端開發 >C++ >如何從 .NET 應用程式自動列印 PDF?

如何從 .NET 應用程式自動列印 PDF?

Susan Sarandon
Susan Sarandon原創
2025-01-23 22:17:12389瀏覽

How to Automate PDF Printing from .NET Applications?

如何自動列印 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn