在 Python 中將 HTML 儲存為 PDF

Manav Narula 2023年1月30日 2021年7月9日
  1. 使用 wkhtmltopdf API 和 Pdfkit 使用 Python 將 HTML 儲存為 PDF
  2. 使用 weasyprint 模組使用 Python 將 HTML 儲存為 PDF
  3. 使用 PyQT 模組使用 Python 將 HTML 儲存為 PDF
在 Python 中將 HTML 儲存為 PDF

HTML 是用於 Web 開發的最基本和流行的語言。它已經形成了許多語言的基礎。Python 支援建立連線和處理網站。

PDF 是一種行動式文件,可以在不同裝置上檢視,並且獨立於建立它時使用的軟體。

在本教程中,我們將使用 Python 將 HTML 網頁儲存為 PDF。

使用 wkhtmltopdf API 和 Pdfkit 使用 Python 將 HTML 儲存為 PDF

wkhtmltopdf 是一組開源工具,可以將 HTML 網頁轉換為 PDF。我們使用 pdfkit 模組在 Python 中處理它。該模組的功能可以在單個或多個網頁上執行,並將它們儲存為 PDF 檔案。

我們可以直接從網頁 URL 或裝置上儲存的 HTML 檔案中讀取內容。from_url() 函式從 URL 讀取內容,而 from_file() 函式從檔案讀取。

檔案的名稱和路徑可以在函式中指定。

看下面的程式碼看看它們的用途

import pdfkit
pdfkit.from_url('https://www.delftstack.com/', 'sample.pdf')

我們還可以通過在函式中提及 False 而不是 PDF 名稱來將此內容儲存在變數中。

在使用此方法之前,請記住從其官方網站安裝 wkhtmltopdf。

使用 weasyprint 模組使用 Python 將 HTML 儲存為 PDF

weasyprint 模組用於將網頁呈現為文件格式。我們使用 HTML 函式讀取 URL 並使用 write_pdf() 函式將其儲存為 PDF。

例如,

import weasyprint
doc_pdf = weasyprint.HTML('https://www.delftstack.com/').write_pdf('sample.pdf')

使用 weasyprint 之前需要安裝很多其他的模組和功能,所以建議不要使用。
此外,Python 2 已取消對此模組的支援。

使用 PyQT 模組使用 Python 將 HTML 儲存為 PDF

PyQT 模組具有廣泛的 GUI 開發功能和其他功能。我們可以手動讀取 HTML 網頁 URL 並使用不同的功能將其轉換為 PDF。

請參考以下程式碼。

import sys 
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv) 
w = QWebView()
w.load(QUrl('https://www.delftstack.com'))
p = Qp()
p.setPageSize(Qp.A4)
p.setOutputFormat(Qp.PdfFormat)
p.setOutputFileName("sample.pdf")

def convertIt():
    w.print_(p)
    QApplication.exit()

QObject.connect(w, SIGNAL("loadFinished(bool)"), convertIt)
sys.exit(app.exec_())
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn