如何在 C# 中列印 PDF 文件 | IronPrint

How to Print PDF Files in C# 14

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF 讓 C# 開發人員只需呼叫單一方法,即可透過程式化方式將 PDF 檔案直接印至實體印表機,並能精確控制印表機設定、解析度 (DPI) 及文件處理,以支援 .NET 應用程式中的自動化列印工作流程。

透過 .NET C# 程式碼將 PDF 傳送至印表機,可自動化列印流程,讓您將列印功能整合至應用程式中,減少手動操作,並確保文件產出的品質一致性。 它能精確控制列印流程。 此功能對於生成發票報告或任何無需使用者介入即可產出實體副本的文件之應用程式而言,至關重要。

IronPDF 提供透過單一方法呼叫,即可程式化地將文件印至實體印表機的功能,讓您能夠列印多個 PDF 檔案。 印表機解析度亦可透過可設定的水平與垂直 DPI 來指定。 請使用同時支援 Microsoft PrinterSettingsPrintController 的方法,以進一步控制 PDF 列印流程。 在深入探討列印功能之前,請確保您已在 .NET 專案中正確安裝 IronPDF

快速入門:使用 IronPDF for .NET 在 PDF 檔案上進行列印

只需幾行程式碼,即可透過 IronPDF 輕鬆列印您的 PDF 文件。 本指南將向您展示如何快速將 PDF 列印功能整合至您的 .NET 應用程式中。 透過 IronPDF,您只需進行最少的設定,即可直接將檔案傳送至印表機,同時享受靈活的設定選項高品質的輸出效果。 立即開始,簡化您的文件工作流程。 若需處理更進階的列印情境,請參閱我們詳盡的 PDF 紙本列印指南。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 請複製並執行此程式碼片段。

    IronPdf.PdfDocument.FromFile("example.pdf").Print();
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronPDF

    arrow pointer


如何使用 IronPDF 列印 PDF 檔案?

可透過 PdfDocument 物件使用 Print 方法,讓您能列印新建立及現有的 PDF 檔案。 預設情況下,此方法會使用系統的預設印表機,但您可以透過將印表機名稱作為字串傳遞給 Print 方法,來指定其他印表機。 這種靈活性讓您能輕鬆將 PDF 列印功能整合至現有工作流程中,無論是動態產生文件,還是處理現有的 PDF 檔案。

請注意所有列印功能僅支援 Windows 系統。

我可以鎖定哪些印表機?

IronPDF 支援列印至 Windows 系統上已安裝的任何印表機,包括網路印表機、"Microsoft Print to PDF"等虛擬印表機,以及透過 USB 或網路連接的實體印表機。 若需針對網路印表機進行列印,請參閱我們的網路印表機疑難排解指南,以獲取更多設定建議。

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-print.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>");

// Send the document to "Microsoft Print to PDF" printer
pdf.Print("Microsoft Print to PDF");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>")

' Send the document to "Microsoft Print to PDF" printer
pdf.Print("Microsoft Print to PDF")
$vbLabelText   $csharpLabel

當我將 PDF 送印時會發生什麼事?

當您呼叫 Print 方法時,IronPDF 會將您的 PDF 文件傳送至 Windows 列印暫存區,該暫存區負責管理所選印表機的列印佇列。 該文件會連同檔案名稱、大小及狀態等詳細資訊一併顯示於列印佇列中。 列印排程器隨後會根據印表機的功能及當前佇列位置來處理該文件。

Windows 列印佇列顯示 Microsoft Print to PDF 並包含佇列中的文件,同時顯示工作狀態與檔案詳細資訊

如何控制列印品質與解析度?

您可以透過向 Print 方法提供所需的 DPI 值,來指定列印 PDF 的解析度;該方法會將相同的 DPI 值套用至水平與垂直兩維度。 若要使用不同的 DPI 值,請向方法傳遞兩個參數:第一個參數代表水平 (x) DPI,第二個參數代表垂直 (y) DPI。 較高的 DPI 值可產生更優質的 PRINT 效果,但會導致檔案大小增加且處理時間延長。

何時應調整 DPI 設定?

不同的列印情境需要不同的 DPI 設定。 對於標準的辦公室文件,150-300 DPI 可提供良好的品質。 若需高品質圖形或照片,請使用 600 DPI 或更高解析度。 初稿可採用 72-150 DPI 解析度,以節省時間與資源。 若僅需製作供數位瀏覽用的 PDF 檔案,請參閱我們的 PDF 壓縮指南以優化檔案大小。

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-dpi.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>");

// Set custom DPI
pdf.Print(300);

// Specify printing resolution
pdf.Print(10, 10, "Microsoft Print to PDF");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>")

' Set custom DPI
pdf.Print(300)

' Specify printing resolution
pdf.Print(10, 10, "Microsoft Print to PDF")
$vbLabelText   $csharpLabel

不同列印類型最適合使用哪些 DPI 值?

讓我們在接下來的範例中,看看如何將 PDF 檔案轉為點陣圖並進行列印。 DPI 的選擇取決於您的具體需求:

  • 文字文件:300 DPI 可呈現清晰易讀的文字

  • 混合內容(文字與圖片):300-400 DPI 以平衡畫質與檔案大小

  • 高品質照片:600 DPI 或更高解析度可保留影像細節

  • 初稿列印:150 DPI(用於快速審閱)

  • 存檔品質:1200 DPI,適用於長期保存

如何在不進行實體列印的情況下節省 PDF 檔案?

PrintToFile 方法透過將 PDF 文件轉換為點陣圖(基於像素)影像,並儲存為 PDF 檔案,從而高效地將其柵格化。此流程由 Windows 內建印表機(例如"Microsoft Print to PDF")處理。值得注意的是,此方法會將 PDF 儲存至磁碟,而不會傳送至實體印表機。 如需更多節省 PDF 的方法,請參閱我們關於匯出與儲存 PDF 的完整指南

為何要使用 PrintToFile 而不是一般儲存功能?

PrintToFile 在您需要模擬列印流程卻無需實體輸出時,能提供獨特的優勢。 它特別適用於建立可直接列印的檔案、測試列印版面配置,或產生與紙本顯示效果完全一致的文件。 此方法亦可協助您將 PDF 轉換為特定格式,或套用特定印表機的轉換設定。

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-print-to-file.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>");

// Print to file
pdf.PrintToFile("");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>")

' Print to file
pdf.PrintToFile("")
$vbLabelText   $csharpLabel

光柵化的優勢有哪些?

透過 PrintToFile 進行光柵化可帶來多項優勢:

  • 外觀一致性:確保 PDF 在不同檢視器中呈現相同樣式

  • 字型嵌入:將文字轉換為圖像,消除字型相容性問題

  • 安全性:使文字無法被選取,並增加提取難度

  • 列印預覽:精確顯示文件列印後的實際樣貌

  • 檔案大小優化:可縮小複雜向量圖形的檔案大小

若需在不儲存至磁碟的情況下於記憶體中處理 PDF,請參閱我們的《PDF 轉 MemoryStream 指南》。


如何存取進階印表機設定?

若要自訂 PRINT 選項,請使用 GetPrintDocument 方法,該方法可接受 Microsoft PrinterSettingsPrintController 物件。 此方法會傳回當前的列印文件物件。 PrinterSettings 讓您能夠設定頁碼範圍和印表機選擇等選項,而 PrintController 則可讓您控制列印流程,包括處理例外狀況、進度回報、列印對話方塊、列印預覽及其他相關任務。 PrinterSettings 選項的詳細說明位於程式碼範例下方。 如需自訂紙張尺寸,請參閱我們的自訂紙張尺寸指南

我可以設定哪些選項?

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-printer-setting.cs
using IronPdf;
using System.Drawing.Printing;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Testing</h1>");

PrinterSettings settings = new PrinterSettings() {
    PrinterName = "Microsoft Print to PDF",

    // Number of Copy
    Copies = 2,

    // Page range to print
    FromPage = 2,
    ToPage = 4,
};

PrintDocument document = pdf.GetPrintDocument(settings);

// Print
document.Print();
Imports IronPdf
Imports System.Drawing.Printing

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Testing</h1>")

Private settings As New PrinterSettings() With {
	.PrinterName = "Microsoft Print to PDF",
	.Copies = 2,
	.FromPage = 2,
	.ToPage = 4
}

Private document As PrintDocument = pdf.GetPrintDocument(settings)

' Print
document.Print()
$vbLabelText   $csharpLabel

各 PrinterSettings 屬性分別控制什麼?

了解每個 PrinterSettings 屬性,有助於您微調列印工作流程:

  • CanDuplex:表示印表機是否支援雙面列印。 若 true,則可進行雙面列印; 否則,則無法。

  • Collate:指定在列印時,應將多個 PDF 檔案或同一份 PDF 文件的複本進行編排(依序排列)。 當 true 時,印表機會將副本進行分頁; 當 false 時,它並不會。

  • Copies:設定要列印的 PDF 文件份數。 此設定決定將列印多少份相同的文件副本。

  • DefaultPageSettings:代表印表機的預設頁面設定,包括紙張尺寸、邊距及方向。 這對於確保您的 PDF 能在不同紙張格式上正確列印至關重要。

  • Duplex:指定要使用的雙面列印模式。 選項包括 Duplex.Horizontal 以及 Duplex.Vertical

  • InstalledPrinters:提供系統中已安裝印表機名稱的清單。 您可以遍歷此集合以取得可用印表機的名稱。

  • IsDefaultPrinter:表示 PrinterName 中指定的印表機是否已設定為系統的預設印表機。

  • IsPlotter:用於判斷印表機是否為繪圖機。 繪圖機常被用於大幅面列印,例如建築或工程圖紙。

  • IsValid:表示印表機設定是否有效,以及是否可用於列印 PDF 檔案。

  • LandscapeAngle:指定印表機橫向列印的傾斜角度(旋轉角度),直向列印通常為 90 度。

  • MaximumCopies:代表 PDF 列印時可指定的最大份數。

  • MaximumPage:指定可設定的PRINT或轉換最大頁數。

  • MinimumPage:指定可設定用於列印或轉換的最小頁碼。

  • PaperSizes:提供印表機支援的紙張尺寸清單。 您可以查詢此資料庫以確認可用的紙張尺寸。

  • PaperSources:提供印表機可用的紙張來源或紙匣清單。 這在選擇用於列印 PDF 檔案的紙張來源時會很有幫助。

  • PrinterName:指定用於列印或轉換的印表機名稱。

  • PrinterResolutions:提供一系列可用的印表機解析度,讓您選擇列印品質。

  • PrintFileName:在使用 PrintToFile 將文件印至檔案時,用以取得或設定檔案名稱。

  • PrintRange:指定要列印的 PDF 頁面範圍,例如所有頁面、特定範圍或選取範圍。 使用此功能來列印特定頁面。

  • FromPage:指定PRINT或轉換的起始頁碼。 將從此頁面開始列印。

  • ToPage:指定PRINT或轉換時的結束頁碼。 到達此頁面後,PRINT將停止。

  • PrintToFile:指示是否將內容輸出至檔案,而非實體印表機。 當 true 時,您可以使用 PrintFileName 指定檔案路徑。

  • SupportsColor:表示印表機是否支援彩色列印。 若 true,則支援彩色列印; 否則,僅限於黑白(單色)列印。

如何設定預設印表機?

最後,若要將預設印表機設定為 PDF 列印,請前往裝置設定中的"印表機與掃描器"區段。 在 Windows 10 和 11 中,請前往"設定">"裝置">"印表機與掃描器",點擊目標印表機旁的"管理",然後選擇"設為預設"。此設定可確保當未指定特定印表機名稱時,IronPDF 會使用您偏好的印表機。 若需在列印前從頭建立 PDF 檔案,請參閱我們的完整 PDF 建立教學指南

常見問題

如何在 C# .NET 中透過程式碼列印 PDF 檔案?

IronPDF 讓您能透過單一方法呼叫(使用 PRINT() 方法)以程式化方式列印 PDF 檔案。只需使用 IronPdf.PdfDocument.FromFile("example.pdf").Print() 載入您的 PDF 檔案,即可將其傳送至預設印表機;或指定印表機名稱以選取其他印表機。

在列印 PDF 時,我對印表機設定有哪些控制權?

IronPDF 提供對印表機設定(包括水平與垂直解析度(DPI))的精確控制。您可以使用接受 Microsoft PrinterSettings 和 PrintController 的方法,對 PDF 列印流程進行進階控制。

我可以將文件印至特定印表機,而非預設的印表機嗎?

是的,IronPDF 允許您透過將印表機名稱作為字串傳遞給 PRINT 方法,來指定不同的印表機。預設情況下,它會使用系統的預設印表機,但您可以輕鬆指定系統上任何可用的印表機。

是否可以自動列印多個 PDF 檔案?

是的,IronPDF 支援透過程式化方式列印多個 PDF 檔案,使其成為批次處理和自動化工作流程的理想選擇。這對於需要生成發票、報告或需列印實體副本的文件,且無需使用者介入的應用程式而言,特別實用。

PDF 列印支援哪些平台?

雖然 IronPDF 專注於 .NET 應用程式,但 Iron Software 亦提供 IronPrint——一款專用的列印程式庫,相容於 Windows、macOS、Android 及 iOS 平台,以提供更廣泛的列印功能。

如何在我的 .NET 專案中開始進行 PDF 列印?

首先,請在您的 .NET 專案中安裝 IronPDF,接著使用以下簡易工作流程:透過 PdfDocument.FromFile() 載入 PDF 檔案,並呼叫 PRINT() 方法。若需進階設定,請使用 GetPrintDocument 方法來存取更多列印選項。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

審閱者:
Jeff Fritz
Jeffrey T. Fritz
首席程式經理 - .NET 社群團隊
Jeff 同時也是 .NET 與 Visual Studio 團隊的首席程式經理。他是 .NET Conf 虛擬會議系列的執行製作人,並主持每週播出兩次的開發者直播節目《Fritz and Friends》,在節目中他會與觀眾一起探討技術話題並共同編寫程式碼。Jeff 負責撰寫工作坊內容、準備簡報,並為 Microsoft Build、Microsoft Ignite、.NET Conf 以及 Microsoft MVP Summit 等微軟最大規模的開發者活動規劃內容。
準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。