在 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