问题 是否有任何Python 3模块来创建PDF文件? [关闭]


我有一段时间寻找能够创建PDF并与我在Python 3中的当前项目集成的东西。通常的参考资料是 ReportLab的 要么 pyPDF。但是这两者还没有与Python 3兼容。我确实看到自2010年以来已有一些 讨论 关于Reportlab中的端口,但截至今天我找不到任何对该端口的引用。

另一种方法是使用Python 3的中间格式在另一个程序中使用,包含子进程调用。 Relatorio 做这个。我可能会考虑做类似的事情,甚至生成XHTML / CSS并使用 xhtml2pdf


10216
2017-08-18 18:33


起源

Reportlab现在正在移植: bitbucket.org/rptlab/reportlab/branch/py33 - Matthias Kestenholz
Reportlab 3(发布 2013年2月)现在支持Python 3.3+ - Alasdair
实际上,Reportlab及其“更好”的界面django-easy-pdf现在可用于Python 3(现在xhtml2pdf支持beta Python 3) - 我解释了如何让事情发挥作用 这里。 - metakermit


答案:


开罗 图书馆 pycairo (不是py2cairo,用于python 2)绑定适用于python 3.x并且可以生成PDF输出(以及其他)。


3
2017-08-18 19:05



根据你的建议,我开始在cairo / pango周围寻找一些图书馆,我发现了这个 savannah.nongnu.org/projects/pypdflib 它有一些很好的文件抽象。它没有正式支持python3,但基于对cairo和pango上的python3的支持,通过一些修改似乎是可行的。 - cyraxjoe
是的,开罗本身适合绘画,但只能通过创建文本。 Pypdflib听起来不错。另一种选择可能是使用pango(pango.org)用cairo文本。如果你安装pygtk,它有一个pangocairo模块。但除了一些例子,没有太多的文件。 - Roland Smith
只是为了告知python 3和pdf中的未来冒险我最终将python2库移植到python 3 bitbucket.org/cyraxjoe/py3fpdf。 - cyraxjoe


街区有一个看起来很有希望的新孩子。 它支持打印css功能,如分页符。

尝试 weasyprint


4
2018-01-24 16:06



OP正在讨论在Python 3中专门使用PDF处理器,而不是一个独立的服务。编辑:没关系,我发现weasyprint是在github上,可以编写脚本。这是一个更相关的链接: github.com/Kozea/WeasyPrint - jamescampbell


最后我发现很难使用pycario / pango,pycairo stil错过了png的一些方法,并且在python3中还没有支持PIL,也带有很多依赖(使用pycario的想法) 所以我最终将一个python 2库移植到python 3,不是很先进但是为一些基本的pdf完成了工作,它叫做 py3fpdf

--- 更新  -

结果是p3fpdf没有完成n_n'的工作。所以说到故事的结尾,我做了一个 预处理器 至 apache fop 它被称为 pypfop。我最近刚刚与整个项目分离,这是一项特别是文档的工作,示例可能是说明性的。


3
2017-08-25 18:28





您可以获得HTML / CSS路由并使用 王子 虽然它不是免费软件。

如果您的源代码不是太复杂,您也可以尝试使用纯python解决方案 http://code.activestate.com/recipes/189858-python-text-to-pdf-converter/


2
2017-08-18 18:43





你可以打电话来打电话 text2pdf


0
2017-08-18 20:41



这个问题已经建议使用xhtml2pdf作为替代方案,因此“对text2pdf做同样的事情”并没有真正回答这个问题。 - Reinout van Rees


2.7和3.3的端口目前正在进行中:

https://github.com/nakagami/reportlab

PIL尚未移植到Python3,因此ReportLab将无法完全运行。


0
2018-01-14 09:55





Pillow是Python 3的一个非常好的PIL端口,它现在可以在Debian实验和Ubuntu 13.04中使用。这应该取消阻止ReportLab的Python 3端口,我很乐意看到。 @nakagami:你的github报告对我来说似乎失败了 python3 setup.py build 但它可能很浅薄。你的港口有多官方?你有没有联系过RL人,看他们是否对你的工作感兴趣?我不认为他们的代码在公共vcs中可用。


0
2018-02-12 15:24