开源 Python HTML 到 PDF 转换库
尝试这个免费的开源 Python 库将 HTML 转换为 PDF 文档。
什么是 xhtml2pdf?
Xhtml2pdf 是一个开源 Python 库,旨在将 HTML 内容转换为 PDF 文档,主要侧重于保留原始结构和样式。这个功能强大的库可以将网页无缝转换为专业的可打印 PDF。
开始使用 xhtml2pdf
您需要 Python 版本 3.8.0 或更高版本才能安装和使用 xhtml2pdf。因此,首先安装 Python,然后使用以下命令通过 pip 和 虚拟环境 在您的机器上安装 xhtml2pdf。
Linux
python -m venv env
. env/bin/activate
pip install xhtml2pdf
苹果系统
python -m venv env
. env/bin/activate
pip install xhtml2pdf
视窗
python -m venv env
.\env\Scripts\activate
pip install xhtml2pdf
将 HTML 字符串转换为 PDF 文档
我们可以使用 xhtml2pdf 库将 HTML 字符串转换为 PDF 文档。我们将完整的 HTML 内容存储在一个变量中,然后将该变量传递给函数 pisa.CreatePDF(html_content, dest, encoding)。此方法为我们提供了 PDF 内容,其中超链接、图像和其他元素在我们传递给它的 BytesIO 对象中管理。最后,我们使用存储在 BytesIO 对象中的数据创建一个 PDF 文件。查看以下代码片段了解详细信息:
输出
下面的截图显示了从 HTML 字符串转换而来的 PDF 文档:
将 HTML 文件转换为 PDF 文档
我们还可以使用 xhtml2pdf 库将 HTML 文件转换为 PDF。我们将 HTML 文件内容读入变量,然后将该变量传递给 pisa.CreatePDF(html_content, dest, encoding) 方法。之后,我们按照上一个示例中分享的相同步骤,使用 BytesIO 对象创建 PDF 文档,如以下代码片段所示:
输出
下面的截图显示了从 HTML 文件转换而来的 PDF 文档:
结论
总而言之,xhtml2pdf 是一个开源 Python 库,可将 HTML 转换为 PDF 文档,同时处理超链接、图像和外部样式表。xhtml2pdf 在将 HTML 转换为 PDF 时不包含前端库,因此当 HTML 中有变量(如 {{name}})时,它们会完全按照 HTML 中所写的方式出现在 PDF 中,而不是显示它们的实际值。
此外,它不支持依赖 JavaScript 获取内容的动态页面,并且不遵循复杂的 CSS 指定布局(例如,它应用 CSS 中提到的颜色、字体大小等,但忽略布局 CSS,如填充、边距、显示等)。尽管存在这些限制,xhtml2pdf 仍然是满足直接静态 HTML 到 PDF 转换需求的宝贵工具。