PYTHON PDF 工具

如何在 Python 中創建 PDF 文件

發佈 2023年7月3日
分享:

PDF (可攜式文件格式) 是最受歡迎的數字文件格式,用於在線傳送和接收數據。它主要用來保存數據格式並通過加密密碼來保護數據。.pdf 擴展名不依賴於任何軟體應用程式、硬體或作業系統。

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

  1. Reportlab

  2. PDFKit

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

如何在 Python 中建立 PDF 檔案?

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

使用Reportlab庫創建PDF文件

Reportlab library 是一個免費的開源 PDF 工具包,可用於輕鬆創建 PDF 檔案。它提供了一系列繪圖工具,可以在多個頁面中的特定位置添加圖像和文字。您還可以使用 encryptCanvas 方法創建加密的 PDF 檔案。

安裝

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

pip3 install reportlab

注意: 在安裝 Python 時,必須將其添加到路徑環境變量中,才能在 cmd 或 PowerShell 中從任何位置執行上述命令。建議使用 Pip3 用於 Python 3+,因為它是更新的版本。

打開一個新的 Python 文件

要使用 Reportlab 庫,我們需要在 Python 文件中編寫代碼並執行它以創建 PDF 文件。

  1. 從 Windows 搜索欄搜索並打開 Python 默認的 IDLE 殼,按 Ctrl + N 或從“文件”選項卡選擇“新建文件”。這將打開編寫代碼的文本編輯器。

  2. 接下來,以適當的名稱保存文件。我將其命名為 "createpdf.py"。文件看起來像這樣:

如何在 Python 中創建 PDF 文件:图1

用於讀取和提取文本的 Python 代碼

以下代碼將繪製文檔元素並在幾秒鐘內生成 PDF:

# importing modules
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
from reportlab.lib import colors

# initializing variables with values
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)

# creating the title by setting it's font
# and putting it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# creating the subtitle by setting it's font,
# colour and putting it on the canvas
pdf.setFillColorRGB(0, 0, 255)
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)

# saving the pdf
pdf.save()
PYTHON

生成的 PDF 輸出如下:

如何在Python中建立PDF檔案:圖2

代碼說明

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

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

現在,我們設置了畫布名稱、文件標題、居中的標題和副標題,並使用了適當的字體和大小。

# creating a pdf object
pdf = canvas.Canvas(fileName)

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

# creating the title by setting it's font
# and putting it on the canvas
pdf.setFont('abc', 36)
pdf.drawCentredString(300, 770, title)

# creating the subtitle by setting it's font,
# colour and putting it on the canvas
pdf.setFillColorRGB(0, 0, 255)
pdf.setFont("Courier-Bold", 24)
pdf.drawCentredString(290, 720, subTitle)
PYTHON

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

# saving the pdf
pdf.save()
PYTHON

我們也可以使用 drawStringdrawText 方法來使用 Reportlab 在 python 中創建一個簡單的 PDF 文件。

使用 PDFKit Library 創建 PDF 檔案

PDFKit library 是在使用 Python 製作 PDF 文件時最好的方法之一。它可以使用 HTML 程式碼來製作 PDF 文件。您可以將簡單和複雜的 HTML 文件或來自 URL 的 HTML 渲染成像素完美的可列印 PDF 頁面。然而,PDFKit 集成了 wkhtmltopdf 功能來將 HTML 轉換為 PDF。要安裝適用於 Windows、Linux 和 Mac 的 wkhtmltopdf,請造訪此連結 連結注意: 在 Windows 作業系統中,wkhtmltopdf 將安裝在程式檔案中。

安裝

使用以下命令安裝 PDFKit:

pip3 install pdfkit

從URL創建PDF文件

使用PDFKit創建PDF文件非常簡單,只需一行代碼即可完成。

import pdfkit

pdfkit.from_url('http://google.com', 'out.pdf')
PYTHON

從 HTML 文件創建 PDF 文件

import pdfkit

pdfkit.from_file('index.html', 'out.pdf')
PYTHON

從 HTML 模板創建 PDF 文件

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

html_string = """
    <html>
        <head>
        <meta name="pdfkit-page-size" content="Legal"/>
        <meta name="pdfkit-orientation" content="Landscape"/>
        </head>
        Hello World!
        </html>
    """

pdfkit.from_string(html_string, 'out.pdf')
PYTHON

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

The IronPDF Library

IronPDF 片庫

IronPDF 是一個有用的工具來 建立PDF文件 在 .NET 專案中。這個函式庫的一個常見用途是 “HTML 轉 PDF”的轉換,其中 HTML 被用作呈現 PDF 文件的設計語言。

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

它還使您能夠使用 HTML 5、CSS、JavaScript 和圖像來創建 .NET PDF 函式庫。您可以輕鬆地編輯、蓋章並添加頁眉和頁腳到 PDF。此外,它還使读取 PDF 文字和提取圖像變得非常容易。

要開始使用 IronPDF,您需要安裝 NuGet 包:

 pip install ironpdf

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

from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

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

# Export to a file or Stream
pdf.SaveAs("url.pdf")
PYTHON

以下代碼將幫助您從HTML代碼以及任何CSS或JavaScript創建PDF文件:

from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

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

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

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

從上面的程式碼可以看出,它相當簡潔清晰。只需要很少的程式碼行數即可從 HTML 代碼中創建 PDF 文件。這是一個快速、可靠且節省時間的解決方案,並能帶來準確的結果。

下載 IronPDF 並試用 免費. 試用期結束後,授權費用從 $749 開始。

< 上一頁
如何使用 PyCharm(開發者指南)
下一個 >
如何在 Python 中讀取 PDF 文件

準備開始了嗎? 版本: 2024.9 剛剛發布

免費 pip 安裝 查看許可證 >