Python建立PDF文件

如何在Python中製作PDF檔案

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

使用IronPDF在Python中建立PDF檔案,只需幾行程式碼即可將HTML字串、HTML文件或URL轉換為PDF文件。 IronPDF會自動處理渲染、格式化和安全功能。

快速入門:在Python中建立PDF

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/quickstart.py
# 1. Install IronPDF: pip install ironpdf
# 2. Import the library
from ironpdf import *
# 3. Create renderer
renderer = ChromePdfRenderer()
# 4. Convert HTML to PDF
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>")
# 5. Save the PDF
pdf.SaveAs("output.pdf")
PYTHON

在Python中自動化PDF建立讓開發者能夠以編程方式生成文件:發票、報告、合約和證書,而無需離開應用程式。 傳統上,這需要處理佈局引擎和格式規範,但IronPDF的HTML優先方法意味著任何HTML/CSS文件只需一次方法調用即可成為精確的PDF。

這個操作指南涵蓋了在IronPDF for Python中建立PDF的四個主要工作流程:轉換HTML字串、轉換本地HTML文件、轉換URL,以及在導出之前應用密碼保護。

在PDF建立中應使用哪個Python程式庫?

IronPDF是一個專門用於從HTML建立PDF文件的Python程式庫。 其API簡單明瞭:傳入HTML標記(或文件路徑,或URL)即可收到一個PdfDocument物件,您可以保存、印章、合併或加密。

該程式庫包裝了IronPDF經過實戰考驗的.NET渲染引擎,該引擎同樣應用於.NET、JavaNode.js項目,因此HTML到PDF的輸出在各平台上都是一致的。 支持現代網頁標準,包括CSS3、HTML5、JavaScript執行、網頁字型和響應式佈局。

除了PDF生成,IronPDF覆蓋了完整的PDF生命周期:

[IronPDF適用於.NETJavaPythonNode.js。 這份指南專門涵蓋Python的實現。)}]

在建立PDF之前有哪些前提條件?

要使用IronPDF for Python,必須安裝以下程式:

  1. .NET 6.0 SDK:IronPDF for Python運行於IronPDF .NET程式庫之上。 從微軟.NET 6.0官方下載頁面下載。
  2. Python 3.x:從Python官方網站下載並安裝Python。 安裝時選擇將Python新增到PATH的選項。
  3. pip:隨附於Python 3.4+。 通過在終端中運行pip --version來驗證安裝。
  4. IronPDF:使用pip安裝程式庫:
pip install ironpdf

請注意在某些系統中,Python 2.x可能仍是預設版本。 在這些情況下,使用pip來安裝Python 3套件。 如果遇到安裝錯誤,請參考我們的OSError問題的故障排除指南

在建立PDF之前需要哪些程式碼設置?

將以下導入語句新增到Python腳本的頂部:

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/import.py
# Import statement for IronPDF for Python
from ironpdf import *
PYTHON

在進行其他IronPDF調用之前,請通過將有效的授權金鑰分配給LicenseKey屬性來配置它。 這將去除生成的PDF中的試用水印。 有關實施授權金鑰的詳細指南,請存取授權金鑰設置指南

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/license.py
# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
PYTHON

重要要建立無水印的PDF,需要有效的授權金鑰。 購買授權獲取免費試用授權金鑰。 沒有授權金鑰,IronPDF會在每個輸出PDF上新增試用水印。

如何將HTML字串轉換為PDF文件?

RenderHtmlAsPdf 方法直接將HTML字串轉換為 PdfDocument 物件。 將任何有效的HTML標記作為參數傳遞,IronPDF將使用其內建的Chromium引擎渲染,執行JavaScript和應用CSS,然後生成PDF。

這種方法對於動態生成的內容最為靈活:在Python中構建HTML字串(使用模板引擎如Jinja2或簡單的字串格式化),然後將其直接傳遞給渲染器。 例如,生成發票意味著使用訂單資料填充HTML模板,並在一步中調用RenderHtmlAsPdf

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

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the Chromium renderer
renderer = ChromePdfRenderer()

# Convert an HTML string to a PDF document
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
PYTHON

如何保存生成的PDF?

一旦HTML字串已被轉換為SaveAs

:path=/static-assets/pdf/content-code-examples/how-to/python-create-pdf/save-html-string.py
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")

# Save the PDF to a file
pdf.SaveAs("htmlstring_to_pdf.pdf")
PYTHON

文件htmlstring_to_pdf.pdf寫入到當前工作目錄,保留HTML內容及整個CSS樣式。 有關高級HTML渲染技術,包括CSS框架、JavaScript框架和複雜佈局,請參閱Python的HTML到PDF教程

如何從本地HTML文件生成PDF?

當HTML內容位於本地文件系統中的一個文件時,RenderHtmlFileAsPdf是一個正確的方法。 提供文件路徑作為參數:

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

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Create a PDF from a local HTML file
pdf = renderer.RenderHtmlFileAsPdf("example.html")

# Save the output PDF
pdf.SaveAs("htmlfile_to_pdf.pdf")
PYTHON

IronPDF解析相對於HTML文件位置的CSS文件、圖片和腳本的相對路徑。 渲染器在生成PDF前載入所有相關資產,因此結果與瀏覽器顯示的內容匹配。 這使其成為一個可靠的選擇,適用於模板化的文件,其中HTML和資產作為磁盤上的文件進行維護。

提示在處理本地HTML文件時,確保所有連結的資產(樣式表、字型、圖片)使用相對於HTML文件的路徑。IronPDF在渲染之前解析這些路徑,生成完整的自包含PDF。

Icon Quote related to 如何從本地HTML文件生成PDF?

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

Milan Jovanovic related to 如何從本地HTML文件生成PDF?

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 如何從本地HTML文件生成PDF?

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

Brent Matzelle related to 如何從本地HTML文件生成PDF?

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 如何從本地HTML文件生成PDF?

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

David Jones related to 如何從本地HTML文件生成PDF?

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何在Python中從URL建立PDF?

使用RenderUrlAsPdf將實時網頁轉換為PDF。 提供完整的URL作為參數:

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

# Apply license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# Instantiate the renderer
renderer = ChromePdfRenderer()

# Convert a web page to PDF
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Save the output PDF
pdf.SaveAs("url.pdf")
PYTHON

URL渲染功能支持現代網頁技術,包括動態JavaScript內容、AJAX調用和響應式佈局。 IronPDF等到頁面完全載入,包括JavaScript執行,然後捕捉PDF,因此所有動態內容準確捕捉。

在哪裡可以找到更多URL轉換範例?

有關將網頁轉換為PDF的更多範例,請存取URL到PDF程式碼範例頁面。 對於需要身份驗證的網頁,請參見網站和系統登錄指南

如何自定義PDF格式選項?

ChromePdfRenderer控制了輸出PDF的格式和佈局。 常用設置包括頁面大小、頁面方向、邊距大小和縮放級別。

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

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()

# Configure rendering options
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 25
renderer.RenderingOptions.MarginRight = 25

# Render with custom formatting
pdf = renderer.RenderHtmlAsPdf("<h1>Custom Formatted PDF</h1><p>Content here.</p>")
pdf.SaveAs("formatted.pdf")
PYTHON

有哪些格式化設置可用?

RenderingOptions屬性提供了紙張大小、頁面方向、邊距和縮放的設置。 下表列出了最常用的屬性:

Python中PDF格式化的常用RenderingOptions屬性
屬性型別描述
PaperSizePdfPaperSize標準頁面大小(A4、Letter、Legal)或自定義大小
PaperOrientationPdfPaperOrientation頁面方向為豎向或橫向
MarginTop / MarginBottomint(毫米)頁面頂部和底部的邊距,以毫米為單位
MarginLeft / MarginRightint(毫米)頁面左側和右側的邊距,以毫米為單位
HtmlHeader / HtmlFooterHtmlHeaderFooter支持頁碼的運行HTML標題和頁腳

有關額外設置的完整參考,請參閱PDF生成設置程式碼範例

提示要新增運行的標頭和頁腳與頁碼,請在HtmlFooter屬性。 標頭和頁腳範例展示了完整語法。

如何使用密碼保護PDF文件?

要使用密碼保護PDF,請在UserPassword屬性。 所有者密碼同樣可以設置,以分別限制編輯權限與讀取權限。

考慮在URL範例中建立的PDF進行保護:

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

License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")

# Set user password (required to open the PDF)
pdf.SecuritySettings.UserPassword = "sharable"

# Set owner password (controls permissions)
pdf.SecuritySettings.OwnerPassword = "admin123"

# Configure document permissions
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False

# Save the password-protected PDF
pdf.SaveAs("protected.pdf")
PYTHON

密碼保護實際上是如何運作的?

在任何PDF查看器中打開protected.pdf時,會在顯示文件內容前提示使用者密碼。 所有者密碼提供對安全設置的管理存取。 設置AllowUserCopyPasteContent = False防止讀者從PDF中複製文字,但仍允許列印。

要對文件權限進行更多控制,請參見安全和元資料設置範例PDF加密和解密指南

完整的源程式碼是什麼?

下面的綜合範例示範了在一個Python腳本中進行的所有四種PDF建立工作流程:

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

# Apply your license key
License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"

# --- HTML string to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World!</h1><p>This is an example HTML string.</p>")
pdf.SaveAs("htmlstring_to_pdf.pdf")

# --- Local HTML file to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlFileAsPdf("example.html")
pdf.SaveAs("htmlfile_to_pdf.pdf")

# --- URL to PDF ---
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com")
pdf.SaveAs("url.pdf")

# --- Password-protected PDF ---
pdf.SecuritySettings.UserPassword = "sharable"
pdf.SecuritySettings.OwnerPassword = "admin123"
pdf.SecuritySettings.AllowUserPrinting = True
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
PYTHON

IronPDF準確渲染所有圖片和文字,同時保留格式。 互動元素如按鈕維持其功能,文字框在生成的PDF中保留其可編輯性。

在Python中建立PDF的下一步是什麼?

本指南涵蓋了IronPDF for Python中的三種主要PDF建立方法——HTML字串、本地HTML文件和URL——以及用於保護輸出文件的密碼保護。 每種方法都會生成一個PdfDocument物件,可以進一步處理:在保存之前進行印章、合併、拆分或加密。

準備好擴展這些工作流程了嗎? 以下資源展示了實際的下一步:

IronPDF需要有效的授權才能用於生產用途。 授權起價為$999。 開始免費30天試用以便在無限制的情況下評估程式庫,或查看完整產品套件的授權選項

下載完整源程式碼。

常見問題

如何安裝 IronPDF for Python?

在您的終端中運行 pip install ironpdf。您還需要安裝Python 3.x和.NET 6.0 SDK,因為IronPDF for Python是在IronPDF .NET引擎上運行的。

在Python中轉換HTML為PDF的最簡單方法是什麼?

建立一個ChromePdfRenderer實例,然後調用renderer.RenderHtmlAsPdf('<h1>Hello</h1>')。該方法接受任何有效的HTML字串並返回可以用pdf.SaveAs('output.pdf')儲存的PdfDocument物件。

我可以從本地HTML檔案生成PDF嗎?

可以。使用renderer.RenderHtmlFileAsPdf('path/to/file.html')。IronPDF在渲染之前,會解析相對於HTML檔案位置的CSS、圖片和腳本。

如何將有效的網頁URL轉換為PDF?

調用renderer.RenderUrlAsPdf('https://example.com')。IronPDF在捕捉PDF之前,等待頁面完全載入,包括JavaScript執行。

如何給生成的PDF加密密碼?

設置pdf.SecuritySettings.UserPassword來要求密碼開啟檔案,並設置pdf.SecuritySettings.OwnerPassword來限制編輯權限。之後呼叫pdf.SaveAs以寫入受保護檔案。

我可以控制生成的PDF的頁面大小和邊距嗎?

可以。在調用渲染方法之前,配置renderer.RenderingOptions.PaperSize(例如PdfPaperSize.A4)以及設置MarginTopMarginBottomMarginLeftMarginRight以毫米為單位。

IronPDF在HTML轉PDF轉換中支持JavaScript執行嗎?

支持。IronPDF使用基於Chromium的渲染引擎,該引擎會執行JavaScript,處理AJAX調用並應用CSS,然後生成PDF,因此可以準確地捕捉動態內容。

我可以在建立後合併或壓縮PDF嗎?

可以。IronPDF提供單獨的方法來將多個PdfDocument物件合併為一個檔案,以及壓縮現有PDF以減小檔案大小。這兩種操作都適用於任何渲染方法返回的PdfDocument物件。

Curtis Chau
技術作家

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

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

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

還在滾動嗎?

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