IRONSOFTWAREHOME
PYTHON PDF 工具

如何在 Python 中建立 PDF 文件

Curtis Chau
Curtis Chau
Updated: 2026年4月23日

PDF (便攜式文件格式) 是最受歡迎的數位文件格式,用於線上傳送和接收資料。它主要用於保持資料格式並以加密的密碼保護資料。 .pdf 擴展名與軟體應用程式、硬體或操作系統無關。

在本文中,我們將使用Python程式語言建立一個PDF文件。 有許多線上選擇可用,但在這裡我們將使用Python程式庫來建立PDF文件。 以下是兩個著名的程式庫,用於在Python中生成單頁或多頁的PDF文件:

  1. Reportlab
  2. PDFKit

從上述提到的PDF Python程式庫中,我們可以使用任何一種來生成PDF文件。

如何使用Python建立PDF文件?

讓我們逐一查看這兩個程式庫。

使用Reportlab程式庫建立PDF文件

Reportlab 程式庫是一個免費的開源PDF工具包,可以用於輕鬆建立PDF文件。 它提供了一堆繪圖工具,可以在多個頁面上的某個位置新增影像和文字。 您還可以使用 encryptCanvas 方法來建立加密的PDF文件。

安裝

要安裝Reportlab,需要使用pip套件管理器。 它會自動下載並安裝所請求的套件,使用pip命令。 只需在Windows cmd或PowerShell中輸入以下命令:

pip install reportlab
SHELL

注意: 安裝Python時,必須將其新增到路徑環境變數,以便能夠在cmd或PowerShell中的任何位置執行上述命令。 建議使用Pip進行Python 3+的安裝,因為這是更新的版本。

開啟一個新的Python文件

要使用Reportlab程式庫,我們需要在Python文件中編寫程式碼並執行它來建立PDF文件。

  1. 從Windows搜尋欄中搜尋並開啟Python預設IDLE shell,然後按Ctrl + N或從文件選項卡中選擇"新檔案"。 這將打開供撰寫程式碼的文字編輯器。
  2. 接下來,將文件保存為適當的名稱。 我將其命名為 "createpdf.py"。

建立PDF的Python程式碼

以下程式碼將繪製文件元素並在幾秒鐘內生成一個PDF:

# Importing required modules from ReportLab
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors

# File and document attributes
fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'

# Creating a PDF object
pdf = canvas.Canvas(fileName)

# Setting the title of the document
pdf.setTitle(documentTitle)

# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))

# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255)  # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)

# Saving the PDF
pdf.save()
Python

程式碼解釋

在導入所有模組和套件之後,我們首先初始化將寫入PDF文件的所有內容。

fileName = 'sample.pdf'
documentTitle = 'sample'
title = 'Create PDF'
subTitle = 'Using ReportLab !!'
Python

現在,我們建立PDF畫布,設置文件標題,然後在畫布上以適當的字型和大小新增居中的標題和副標題。

# Creating a PDF object
pdf = canvas.Canvas(fileName)

# Setting the title of the document
pdf.setTitle(documentTitle)

# Registering a TrueType font
pdfmetrics.registerFont(TTFont('abc', 'Arial.ttf'))

# Creating the title by setting its font and placing it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# Creating the subtitle by setting its font, color, and placing it on the canvas
pdf.setFillColorRGB(0, 0, 255)  # Set color to blue
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
Python

最後,當所有內容都繪制在畫布上時,我們保存PDF文件。

# Saving the PDF
pdf.save()
Python

我們還可以使用 drawString 和 drawText 方法來使用Reportlab在Python中建立一個簡單的PDF文件。

使用PDFKit程式庫建立PDF文件

PDFKit 程式庫是在Python中建立PDF文件時的最佳方法之一。 它可以使用HTML程式碼建立PDF文件。 您可以將簡單和複雜的HTML文件或來自URL的HTML轉換為精準呈現的可列印PDF頁面。 然而,PDFKit整合了 wkhtmltopdf 特性來將HTML轉換為PDF。 要在Windows、Linux和Mac中安裝 wkhtmltopdf,請存取此 連結。

注意: 在Windows操作系統中,wkhtmltopdf 將安裝在程式檔案中。

安裝

使用以下命令來安裝PDFKit:

pip install pdfkit
SHELL

從URL建立PDF文件

使用PDFKit建立PDF文件非常簡單,並且是一行的過程。

import pdfkit

# Convert a webpage from a URL to a PDF file
pdfkit.from_url('http://google.com', 'out.pdf')
Python

從HTML文件建立PDF文件

import pdfkit

# Convert an HTML file to a PDF file
pdfkit.from_file('index.html', 'out.pdf')
Python

從HTML模板建立PDF文件

您可以將HTML模板作為字串傳遞,以將其轉換為PDF作為輸出文件。

import pdfkit

# HTML content to convert to PDF
html_string = """
    <html>
        <head>
        <meta name="pdfkit-page-size" content="Legal"/>
        <meta name="pdfkit-orientation" content="Landscape"/>
        </head>
        <body>Hello World!</body>
    </html>
    """

# Convert HTML string to a PDF file
pdfkit.from_string(html_string, 'out.pdf')
Python

PDFKit允許您使用HTML模板輕鬆地在Python中建立PDF。

IronPDF程式庫

IronPDF 是一個有用的工具,用於在.NET專案中建立PDF文件。 這個程式庫的一個常見用途是"HTML轉PDF"渲染,HTML被用作渲染PDF文件的設計語言。

IronPDF使用.NET的Chromium引擎來將HTML頁面渲染為PDF文件。 通過HTML到PDF轉換,無需使用複雜的API來定位或設計PDF。 IronPDF還支持所有標準網頁技術:HTML、ASPX、JS、CSS和圖像。

它還使您能夠使用HTML5、CSS、JavaScript和圖像建立一個.NET PDF程式庫。 您可以輕鬆地編輯、蓋章並向PDF新增頁首和頁尾。 此外,它使閱讀PDF文字和提取圖像非常簡單。

開始使用IronPDF,您需要安裝NuGet套件(確保此步驟被認證或在.NET開發環境中運行):

> pip install ironpdf

以下範例將幫助您直接從URL建立PDF:

from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from a URL
pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")

# Export to a file
pdf.SaveAs("url.pdf")
Python

以下程式碼將幫助您使用HTML程式碼以及任何CSS或JavaScript建立PDF文件:

from ironpdf import ChromePdfRenderer

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

# Export to a file
pdf.SaveAs("output.pdf")

# Advanced Example with HTML Assets
# Load external HTML assets: Images, CSS, and JavaScript.
# An optional BasePath is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", base_path=r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
Python

從上述程式碼可以看出,它相當簡單而乾淨。 只需很少的程式碼就可以從HTML程式碼建立PDF文件。 這是一個快速、可靠且節省時間的解決方案,並且結果準確。

下載IronPDF並免費試用。 試用期之後,授權開始於 $999。

Curtis Chau
技術作家

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

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起