2012-07-30 122 views
6

我正在尝试开发一个小脚本,生成一个完整的新pdf,主要是文本和表格,文件作为结果。 我正在寻找最好的方式来做到这一点。使用python生成PDF

我已阅读关于reportlab,这似乎很不错。我只能看到一个缺点。在没有商业版本的情况下编写模板很困难,代码似乎很难维护。

所以我找了一个更加充分的方法,找到了xhtml2pdf,但这个软件很安静,并且不能在两页或更多页面上生成表格。

我想到的最后一个解决方案是用一个模板框架生成一个tex-File,之后再将pdftex作为子进程调用。

我会执行最后一个,并且结束LateX。你会这样做吗,你有更好的想法吗?

+0

免费版的报告实验室工作得很体面imho ...只要你不想做任何事情太难 – 2012-07-30 16:31:17

+0

是的,它会工作,但产生简单的东西的方法是如此复杂和种类的“低级”。在两周后,我不会看到代码所做的或者没有定期编写reportlab的人。无论如何,感谢您的帮助。 – Johannes 2012-07-30 16:47:09

+0

http://appyframework.org/pod.html看起来很有趣,虽然我没有尝试过。从我自己的经验来看,我会说ReportLab值得坚持 - 你可能会放弃它,然后在卡住时发布新问题。 – George 2012-07-30 17:03:44

回答

5

我会建议使用LaTeX方法。它是跨平台的,可以用很多不同的语言工作,而且易于维护。另外它是非商业的!

+0

LaTeX确实符合所有PDF要求。面向复杂布局的PDF不适用于LaTeX ...在这种情况下,只是错误的工具...每个项目的正确工具... – 2012-07-30 16:37:10

+0

@Maulwurfn LaTeX与[TikZ](http://www.texample.net/ tikz /)非常适合复杂的pdf版本... – Zenon 2012-07-30 17:50:10

+0

谢谢Zenon,TikZ看起来很棒。我将用jinja2来实现它来解析LateX-Template并调用PDFtex的子进程来创建pdf。 – Johannes 2012-07-30 20:29:55

3

Pisa是一个Html/CSS到PDF转换器。这是使用python从头开发PDF的一个很好的工具。

如果您需要将Pdf页面添加到一起,或者搜索Pdf数据,那么我建议pyPdf它是免费的,并且有很好的文档记录和易于使用。您可以下载它here

+0

对不起,我看不到这个框架是如何从头开始生成一个新的pdf的。感谢您的回答。 – Johannes 2012-07-30 16:49:28

+0

哦,我的错误,我误解了这个问题。是的,那么我会建议使用“比萨”从头开始生成PDF。比萨可以将html/css转换为pdf格式,因此可以很容易地设计出pdf格式。如果您需要附加Pdf或从中提取数据,pyPdf非常棒。 – 2012-07-30 17:05:17

+0

比萨是一块脆弱的废话 - 适合生产便宜的PDF - 完全无用于专业用途。 – 2012-07-30 19:35:12

0

您可以检查http://pypi.python.org/pypi/z3c.rml/包作为Reportlab的RML的实现。

“最好的办法”是什么意思?你有什么要求?一些PDF要求可以用“便宜”的开源生成器来完成,或者你可能会得到一些商业的PDF转换器。质量越高意味着价格越高。

+0

感谢您的回答。“最好的方式”意味着如何在这方面拥有更多专业知识的人能做到这一点。需求非常简单,轻量级易维护的方式来生成带有文本和表格的pdf,其中表格可以跨越n个页面 – Johannes 2012-07-30 16:43:24