如何使用Python列印PDF檔

如何使用Python列印PDF文件

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

在Python中列印PDF文件是文件自動化工作流程中的常見需求——生成時發送至列印機的發票、排隊自動列印的運送標籤、按計劃派發的審計報告。 IronPDF for Python 提供兩種直接方法:pdf.Print() 用於即時的預設列印機輸出,和 pdf.GetPrintDocument() 用於完全控制頁面範圍、列印機選擇、份數和整理。

本指南涵蓋安裝、載入PDF、預設列印及自定列印設定,並提供每個部分的工作程式碼範例。

快速入門:使用Python列印PDF文件

  1. 安裝IronPDF:pip install ironpdf
  2. 導入程式庫:from ironpdf import *
  3. 載入您的PDF:pdf = PdfDocument.FromFile("MyPdf.pdf")
  4. 使用預設設定列印:pdf.Print()
  5. 或先配置設定:printer_setting = pdf.GetPrintDocument()
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-print-pdf-1.py
from ironpdf import *

# Apply license key
License.LicenseKey = "YOUR-LICENSE-KEY"

# Load and print immediately
pdf = PdfDocument.FromFile("report.pdf")
pdf.Print()
PYTHON

什麼是IronPDF及其如何幫助PDF列印?

IronPDF是一個Python程式庫,讓開發者能夠生成、操作和轉換PDF文件。 程式庫的列印支援涵蓋兩種模式:通過單一方法調用直接的預設列印機輸出,以及文件層級的 PrinterSettings 以獲得完全的列印機控制。

使用IronPDF,列印機通信的基礎複雜性由程式庫處理。 開發者使用高階API而不是管理作業系統層級的列印緩衝器交互、subprocess 命令,或平台特定的列印工具。 這意味著相同的Python程式碼在Windows、Linux和macOS上無需修改即可運行。

一項關鍵功能是將HTML、CSS和JavaScript轉換為PDF後進行列印的能力——當來源資料是網頁模板或動態報告而非現有文件時尤為有用。更多詳情請參閱 HTML轉PDF教程。 該程式庫還支援在列印前 合併PDF壓縮PDF,以縮短大文件的傳輸時間。

為什麼選擇IronPDF用於Python的PDF列印?

IronPDF提供完整的列印API,而非依賴於外部工具如Ghostscript或Adobe Reader命令行標誌。 程式庫內部處理文件渲染,這意味著列印輸出精確地匹配螢幕顯示。 跨平台支援、一致的 PrinterSettings 存取,以及不依賴於本地安裝的PDF查看器,是與基於子進程的方法相比的主要實際優勢。

當要列印的內容尚不存在為PDF時,該程式庫特別有用。 開發者可以 從HTML模板建立PDF,新增 頁眉和頁腳,應用 設有自定字體的頁面版式,然後直接將結果發送至列印機——所有這些都在單一的Python腳本內完成。 這使得IronPDF不僅適用於列印現有文件,還適用於從文件生成到列印的管線。


如何安裝 IronPDF for Python?

可在PyPI上獲得IronPDF包,並可通過單一的pip命令安裝。

pip install ironpdf

安裝後,在您的腳本頂部新增導入語句:

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-print-pdf-3.py
from ironpdf import *
PYTHON

IronPDF要求使用Python 3.6或更高版本。 程式包會在首次使用時自動下載IronPDF渲染引擎,因此初次導入可能需要一些時間。 對於受限於出口存取的環境,請參閱 IronPDF引擎配置指南 以獲取離線設置選項。

設定您的授權金鑰

生產環境使用需要授權金鑰。 在任何其他IronPDF調用之前設置它:

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-print-pdf-4.py
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"
PYTHON

在開發和評估中,程式庫在 試用模式 下工作而不需要金鑰,但輸出PDF會包含試用水印。 如需排查安裝問題,請查閱 安裝疑難解答指南


如何載入PDF文件進行列印?

IronPDF Python PdfDocument.FromFile() 從文件系統載入PDF到可列印的PdfDocument物件

使用IronPDF for Python從文件系統中載入PDF至PdfDocument物件。

IronPDF使用 PdfDocument.FromFile() 來從文件系統載入PDF文件。 該方法接受文件路徑字串並返回一個 PdfDocument 物件,準備進行列印、操作或檢查。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-print-pdf-5.py
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load from a file path
pdf = PdfDocument.FromFile("MyPdf.pdf")

# Load from bytes (e.g., a file read from a database or HTTP response)
with open("MyPdf.pdf", "rb") as f:
    pdf_bytes = f.read()
pdf_from_bytes = PdfDocument.FromBytes(pdf_bytes)

# Load a password-protected PDF
protected_pdf = PdfDocument.FromFile("SecurePdf.pdf", "password123")
PYTHON

以上程式碼展示了三種載入模式。 FromFile() 是文件系統工作流程中最常使用的。 FromBytes() 當PDF作為二進制資料從資料庫查詢或API響應中到達時特別有用。 在 FromFile() 中的可選密碼參數處理 加密PDF,不需額外的解密步驟。

對於來源自URL或HTML內容的PDF,IronPDF還可以在列印前 將URL轉換為PDF將HTML文件渲染為PDF

支援的輸入來源

除了PDF文件外,IronPDF還可以從 圖像、HTML字串和即時URL生成可列印的文件。 這在印刷工作流程中很實用,當來源資料尚不是PDF時——例如,先將 圖表報告模板 渲染成PDF,然後發送至列印機。


Icon Quote related to 支援的輸入來源

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

Milan Jovanovic related to 支援的輸入來源

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 支援的輸入來源

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

Brent Matzelle related to 支援的輸入來源

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 支援的輸入來源

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

David Jones related to 支援的輸入來源

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何使用預設設定列印PDF?

Python腳本調用pdf.Print(),並在Windows列印隊列中可看到結果列印任務

使用IronPDF的 `Print()` 方法的Python腳本將一個PDF任務發送至系統預設列印機。

Print() 方法使用預設頁面設定將文件發送至系統的預設列印機。 不需要額外配置。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-print-pdf-6.py
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load the PDF
pdf = PdfDocument.FromFile("invoice.pdf")

# Print to default printer with default settings
pdf.Print()
PYTHON

預設設置使用系統配置的預設列印機,列印所有頁面,適用列印機的預設紙張尺寸和方向,並發送一份副本。 這是簡單工作流的合適選擇,當使用者的列印機設置已符合文件要求時。

對於生產程式碼,將列印調用包裝在錯誤處理中以捕捉列印機離線或權限錯誤:

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-print-pdf-7.py
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

try:
    pdf = PdfDocument.FromFile("invoice.pdf")
    pdf.Print()
except Exception as e:
    print(f"Print job failed: {e}")
PYTHON

例外資訊提供有關列印失敗的操作系統層級詳情——例如,列印機是否離線,緩衝器是否暫停,或文件渲染失敗。


如何在列印前自訂列印設定?

IronPDF Python GetPrintDocument() 顯示PrinterSettings屬性,包括在Python腳本中設置的PrinterName、FromPage、ToPage和Copies

IronPDF的 `GetPrintDocument()` 方法返回一個PrintDocument物件,具備能完全存取PrinterSettings屬性。

GetPrintDocument() 返回一個 PrintDocument 物件,揭示完整的 PrinterSettings API。 這讓選擇具名的列印機、設置頁面範圍、控制副本和整理,以及配置雙面模式在發送工作之前成為可能。

:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-print-pdf-8.py
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

pdf = PdfDocument.FromFile("quarterly-report.pdf")

# Access the PrintDocument object
printer_setting = pdf.GetPrintDocument()

# Select a specific printer by name
printer_setting.PrinterSettings.PrinterName = "HP LaserJet Pro"

# Print only pages 2 through 4
printer_setting.PrinterSettings.FromPage = 2
printer_setting.PrinterSettings.ToPage = 4

# Print 2 collated copies
printer_setting.PrinterSettings.Copies = 2
printer_setting.PrinterSettings.Collate = True

# Execute the print job
printer_setting.Print()
PYTHON

PrinterSettings.PrinterName 屬性接受在操作系統列印機列表出現的列印機顯示名稱。在Windows上,這與"裝置和列印機"中顯示的名稱相符。 在Linux上,它對應於CUPS列印機名稱。 設置無效的列印機名稱將導致列印工作在運行時失敗,因此在構建面向使用者的列印對話框時,請驗證名稱是否符合已安裝的列印機列表。

提示在Windows上列出可用的列印機名稱,使用PowerShell中的 [System.Drawing.Printing.PrinterSettings]::InstalledPrinters,或使用Python中的 pywin32 模塊來程式上列舉列印機。

選擇頁面和管理副本

FromPageToPage 屬性定義一個包括的頁面範圍。 頁碼從1開始。設置 FromPage = 1ToPage = 0(預設值)列印所有頁面。 Copies 屬性接受整數; 與 Collate = True 相結合,列印機在開始下一份副本之前組裝完整的文件集——這是多頁面報告的正確行為。

批量列印多個PDF

對於列印文件隊列的工作流程,在文件列表中迴圈,並為每個文件調用 Print()

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

def batch_print(file_paths):
    for path in file_paths:
        try:
            pdf = PdfDocument.FromFile(path)
            pdf.Print()
        except Exception as e:
            print(f"Failed to print {path}: {e}")

batch_print(["invoice_001.pdf", "invoice_002.pdf", "shipping_label.pdf"])
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

def batch_print(file_paths):
    for path in file_paths:
        try:
            pdf = PdfDocument.FromFile(path)
            pdf.Print()
        except Exception as e:
            print(f"Failed to print {path}: {e}")

batch_print(["invoice_001.pdf", "invoice_002.pdf", "shipping_label.pdf"])
PYTHON

對於大批量作業,考慮使用 非同步列印 以避免在每個作業快取時阻塞主執行緒。


Python PDF列印的下一步是什麼?

本指南涵蓋了IronPDF for Python的兩種核心列印模式:使用 pdf.Print() 的預設列印機輸出和使用 pdf.GetPrintDocument() 的自訂設定輸出。 兩種方法在Windows、Linux和macOS上都可無需平臺特定程式碼運行。

要在生產應用中擴展這些模式,請考慮:

using 免費試用授權 開始在您的環境中測試列印。 授權選項 以 $999 開始進行生產部署。

下載 本指南中使用的完整源程式碼。

常見問題

在Python中列印PDF文件的最快方法是什麼?

最快的方法是使用IronPDF的Print()方法。安裝完成後,使用pip install ironpdf,載入一個PDF文件PdfDocument.FromFile('yourfile.pdf'),並調用pdf.Print()立即使用預設頁面設定發送到預設印表機。

如何在Python中選擇特定印表機以列印PDF?

使用GetPrintDocument()存取PrintDocument物件,然後將printer_setting.PrinterSettings.PrinterName設置為目標印表機在您的作業系統印表機列表中顯示的名稱。在Windows中,這與“裝置和印表機”中的名稱匹配;在Linux中,則為CUPS印表機名稱。

如何在Python中只列印PDF的特定頁面?

調用pdf.GetPrintDocument()以獲取PrintDocument物件,然後將printer_setting.PrinterSettings.FromPageprinter_setting.PrinterSettings.ToPage設置為第一頁和最後一頁的頁碼(基於1)。調用printer_setting.Print()以使用這些設置執行。

IronPDF for Python是否在Linux和macOS上運行?

是的。IronPDF for Python在Windows、Linux和macOS上運行。相同的Python程式碼可無需平台特定的修改而運行。在Linux中,印表機選擇使用CUPS印表機名稱。需要在所有平台上安裝Python 3.6或更高版本。

需要授權金鑰才能使用IronPDF的列印功能嗎?

生成環境使用需要授權金鑰。在任何其他IronPDF調用之前,使用License.LicenseKey = 'YOUR-LICENSE-KEY'設置。在開發期間,該程式庫可在無鑰匙的情況下運行,但輸出的文件將帶有試用水印。免費試用授權可用於評估。

如何使用Python批量列印多個PDF文件?

迴圈遍歷文件路徑列表,對每個文件調用PdfDocument.FromFile(path)pdf.Print()。將每次迭代包裹在try-except塊中,以捕獲每個文件的錯誤而不中斷整個批量。對於大批量工作,考慮使用異步執行以避免阻塞主執行緒。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

希望快速證明嗎?
運行範例 看您的HTML轉化成PDF。