使用HTML和CSS生成PDF的生成器
项目描述
XHTML2PDF
发行说明可在以下位置找到: 发行说明 与所有开源软件一样,其在生产中的使用取决于许多因素,所以请注意,在某些情况下您可能会遇到问题。
向所有至今为止为此项目工作过的人以及帮助维护它的人致以最诚挚的感谢。
关于
xhtml2pdf 是一个使用 Python、ReportLab 工具包、html5lib 和 pypdf 将 HTML 转换为 PDF 的转换器。它支持 HTML5 和 CSS 2.1(以及一些 CSS 3)。它是完全用纯 Python 编写的,因此它是跨平台的。
此工具的主要好处是,具有像 HTML 和 CSS 这样的网络技能的用户能够非常快速地生成 PDF 模板,而无需学习新技术。
请考虑通过 Patreon 或比特币: bc1qmr0skzwx5scyvh2ql28f7gfh6l65ua250qv227 来支持此项目。
文档
xhtml2pdf 的文档可在 Read the Docs 上找到。
我们可以使用您的帮助来改进它!一个不错的开始地方是 doc/source/usage.rst。
安装
这是一个典型的 Python 库,可以使用 pip 安装
pip install xhtml2pdf
需求
只有 Python 3.8+ 已经过测试并保证可以正常工作。
所有强制需求都在 pyproject.toml 文件中列出,并且会自动使用 pip install xhtml2pdf 方法安装。
作为 PDF 库,我们依赖于 reportlab,它需要一个渲染后端来生成位图和矢量图形格式。有关更多信息,请参阅 reportlab 文档。
推荐的选择是 cairo 图形库,它必须作为系统范围内的安装,例如通过 OS 软件包管理器,并结合 PyCairo 额外依赖项
pip install xhtml2pdf[pycairo]
或者,可以使用已弃用的 RenderPM 通过安装使用
pip install xhtml2pdf[renderpm]
替代方案
您可以尝试 WeasyPrint。代码库很漂亮,它具有不同的功能,并且执行了 xhtml2pdf 执行的大部分操作。
测试呼吁
该项目高度依赖于提高测试覆盖率!此外,代码库的部分区域可以很好地进行清理和重构。
如果您受益于xhtml2pdf,也许可以查看测试覆盖率并识别尚未触及的部分。
开发环境
如果您还没有安装,请安装 pip,Python 包安装程序
sudo easy_install pip
有关 pip 的更多信息,请参阅 http://www.pip-installer.org
我们将推荐使用 venv 进行开发。
为项目创建一个虚拟环境。这可以在项目目录内,但不能位于版本控制之下
python -m venv .venv
激活您的虚拟环境
source .venv/bin/activate
稍后要取消激活,请使用
deactivate
下一步将是安装/升级 pyproject.toml 文件中的依赖项
pip install -e .[test,docs,build]
运行测试以检查您的配置
tox
您应该有一个包含以下成功状态的日志
congratulations :) (75.67 seconds)
Python 集成
有关如何将 xhtml2pdf 集成到 Python 程序中的简单示例,可以在此找到:test/simple.py
运行测试
有两个不同的测试套件可用,以验证 xhtml2pdf 的可靠性
单元测试。单元测试框架目前是最基本的,但正在定期改进(欢迎贡献)。它们应按 Python 的 unittest 模块预期的方式进行运行
tox
功能测试。感谢 mawe42 的出色工作,完整的功能测试套件可在 testrender/ 中找到。
您可以使用 make 运行它们
make test # run tests
make test-ref # generate reference data for testrender
make test-all # Run all test using tox
联系方式
该项目由社区主导!请随时在 GitHub 上提出关于改进 xhtml2pdf 的新想法的问题。
历史
以下是项目的主要里程碑和维护者
2000-2007 Dirk Holtwick(spirito.de 的商业项目)
2007-2010 Dirk Holtwick(项目名为“pisa”,项目以 GPL 发布)
2010-2012 Dirk Holtwick(项目名为“xhtml2pdf”,将许可证更改为 Apache)
2012-2015 Chris Glass (@chrisglass)
2015-2016 Benjamin Bach (@benjaoming)
2016-2018 Sam Spencer (@LegoStormtroopr)
2018-当前 Luis Zarate (@luisza)
有关更多历史,请参阅发行说明。
许可证
版权所有 2010 Dirk Holtwick, holtwick.it
根据 Apache 许可证 2.0 版(“许可证”);除非适用法律要求或书面同意,否则不得使用此文件,除非遵守许可证。您可以在以下位置获得许可证副本:https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言,请参阅许可证。
项目详情
下载文件
下载适合您平台的应用程序文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。