在 Python 中将 HTML 转换为 PDF

Converting HTML to PDF in Python

将 HTML 字符串文件转换为 PDF 的好方法是什么?我正在尝试创建一个使用一些用户输入和 HTML 模板创建 PDF 报告的简单工具。我想分发此工具,以便其他同事可以使用它。

现在我正在尝试使用 pdfkit 和 wkhtmltopdf。问题是当我指定 wkhtmltopdf.exe 文件的路径时,我只能让这段代码工作。当我使用 PyInstaller 打包代码时,其他用户将无法使用该程序,因为他们没有 HTML 模板文件或 wkhtmltopdf 的路径。关于如何解决这个问题的任何想法,或者是否有我应该使用的替代方案 python packages/methods?

如果你想在你的模块中打包 HTML 模板并且你正在使用 setuptools 你可以包含任何其他文件并进行一些更改:

  1. 在模块
  2. 的基本目录中创建一个名为 MANIFEST.in 的文件
  3. 像这样添加您要包含的所有文件:include <path/to/file/in/module>
  4. setup.py 中添加 include_package_data=Truesetup()

进行这些更改应该允许您的模块包含您的模板并允许其他模块将其转换为 PDF。

如果您在模块中遇到路径问题,请确保您使用绝对路径来引用其他文件。我建议使用内置 os 模块来构建适用于任何用户的路径。例如:os.path.abspath("path/to/my/file")