首頁 >後端開發 >C++ >如何在沒有使用者互動的情況下自動將 PDF 列印到特定印表機?

如何在沒有使用者互動的情況下自動將 PDF 列印到特定印表機?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-23 22:13:09155瀏覽

How Can I Automate PDF Printing to a Specific Printer Without User Interaction?

使用Google Pdfium庫實現PDF檔案自動列印

問題:

桌面應用程式產生的PDF檔案需要列印。如何才能在無需用戶幹預的情況下直接將這些文件發送到印表機?

解:

Google Pdfium庫(.NET封裝名為PdfiumViewer)提供了一個無縫列印PDF文件的解決方案。以下是逐步指南:

1. 安裝PdfiumViewer NuGet套件:

在Visual Studio專案中,透過NuGet套件管理器安裝PdfiumViewer NuGet套件。

2. 建立印表機設定:

建構PrinterSettings和PageSettings物件來定義目標印表機和紙張大小。

3. 載入PDF文件:

使用PdfDocument.Load(filename)載入要列印的PDF檔案。

4. 建立列印文件:

使用document.CreatePrintDocument()產生PrintDocument對象,將PDF文件與印表機設定連接。

5. 列印文件:

最後,執行printDocument.Print()啟動列印程序。

實作範例:

以下程式碼片段示範如何靜默列印PDF檔案的多個副本:

<code class="language-csharp">public bool PrintPDF(string printer, string paperName, string filename, int copies)
{
    try
    {
        var printerSettings = new PrinterSettings
        {
            PrinterName = printer,
            Copies = (short)copies
        };

        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;
            }
        }

        using (var document = PdfDocument.Load(filename))
        {
            using (var printDocument = document.CreatePrintDocument())
            {
                printDocument.PrinterSettings = printerSettings;
                printDocument.DefaultPageSettings = pageSettings;
                printDocument.PrintController = new StandardPrintController();
                printDocument.Print();
            }
        }

        return true;
    }
    catch
    {
        return false;
    }
}</code>

以上是如何在沒有使用者互動的情況下自動將 PDF 列印到特定印表機?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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