当我们需要将 HTML 页面转换成 PDF 时,有不同的解决方案可供选择,下面是两种常见的解决方案:
方案一:使用 WeasyPrint 库
WeasyPrint 将 HTML 渲染成 PDF 和 SVG。它是一个跨平台的 Python 库,可以安装在 Windows、macOS 和 Linux 等系统上。使用 WeasyPrint 转换 HTML 到 PDF 的步骤如下:
- 使用 pip 命令安装 WeasyPrint 库:
pip install WeasyPrint
- 导入 WeasyPrint 库:
from weasyprint import HTML, CSS
- 创建 HTML 实例,并提供要转换为 PDF 的 HTML 文件的路径:
html = HTML('<path_to_html_file>')
- 创建样式表 CSS 实例并设置 CSS 样式,可以参考文档 https://weasyprint.readthedocs.io/en/stable/features.html#basics-of-styling:
css = CSS(string='<style_string>')
- 调用 WeasyPrint 的 write_pdf() 方法将 HTML 转换为 PDF 文件,并指定保存 PDF 文件的路径:
html.write_pdf('<path_to_pdf_file>', stylesheets=[css])
方案二:使用 wkhtmltopdf 工具
wkhtmltopdf 是一个用于将 HTML 网页转换为 PDF 格式的开源命令行工具。它基于 WebKit 渲染引擎,支持使用 CSS 和 JavaScript 样式表,并提供丰富的命令行选项以定制转换PDF文件。使用 wkhtmltopdf 将 HTML 转换为 PDF 的步骤如下:
- 下载适用于你操作系统的 wkhtmltopdf 程序,并安装。
- 在命令行中执行
wkhtmltopdf <path_to_html_file> <path_to_pdf_file>
,其中<path_to_html_file>
是要转换为 PDF 的 HTML 文件的路径,<path_to_pdf_file>
是要保存 PDF 文件的路径。
下面是两条示例说明:
示例一:使用 WeasyPrint 将一个 HTML 文件转换为 PDF
from weasyprint import HTML, CSS
html = HTML('example.html')
css = CSS(string='''body { background-color: #ffffff; font-family: Arial, sans-serif; } h1 { color: #008000; }''')
html.write_pdf('example.pdf', stylesheets=[css])
示例二:使用 wkhtmltopdf 将一个 HTML 文件转换为 PDF
在命令行中执行:wkhtmltopdf example.html example.pdf
即可将 example.html 转换为 example.pdf。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3转换html到pdf的不同解决方案 - Python技术站