【问题标题】:Generate a pdf with python用python生成pdf
【发布时间】:2012-07-31 04:34:52
【问题描述】:

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

我读过关于 reportlab 的文章,它看起来很不错。据我所知,它只有一个缺点。没有商业版的模板很难写,代码似乎也很难维护。

所以我搜索了一个更充分的方法,找到了xhtml2pdf,但是这个软件太老了,不能生成超过两页或更多的表格。

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

我会实现最后一个,然后再看看 LateX。你会这样做吗,你有更好的想法吗?

【问题讨论】:

  • report lab 的免费版本运行得相当不错,恕我直言......只要你不想做任何太难的事情
  • 是的,它会起作用,但是生成简单东西的方法是如此复杂,而且有点“低级”。两周后,我看不到代码的作用,也看不到任何不定期编写报告实验室的人。无论如何感谢您的帮助。
  • appyframework.org/pod.html 看起来很有趣,虽然我自己没有尝试过。根据我自己的经验,我会说 ReportLab 值得坚持 - 您不妨试一试,然后在遇到困难时发布新问题。
  • 感谢您的回答,乔治。 pod,我不知道,我认为首先我需要使用 OpenOffice (Java) 运行一个子进程,这对于一些简单的事情会产生很大的开销,其次是模板创建通过所见即所得。我认为这是维护和调试pdf的瓶颈。

标签: python pdf latex


【解决方案1】:

我建议使用 LaTeX 方法。它是跨平台的,支持多种不同的语言,并且易于维护。而且它是非商业的!

【讨论】:

  • LaTeX 确实适合所有 PDF 要求。复杂的面向布局的 PDF 不适用于 LaTeX...在这种情况下只是错误的工具...每个项目的正确工具...
  • @Maulwurfn LaTeX 和 TikZ 非常适合复杂的 pdf 布局...
  • 感谢 Zenon,TikZ 看起来很棒。我将使用 jinja2 实现它来解析 LateX-Template 并调用 pdftex 的子进程来创建 pdf。
【解决方案2】:

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

如果您只需要将 Pdf 页面附加在一起,或搜索 Pdf 数据,那么我建议您使用pyPdf,它是免费的,并且文档非常齐全且易于使用。可以下载here

【讨论】:

  • 抱歉,我看不出这个框架如何能够从头开始生成新的 pdf。感谢您的回答。
  • 哦,天哪,我误解了这个问题。是的,那么我建议使用“pisa”从头开始生成 PDF。 Pisa 可以将 html/css 转换为 pdf,因此可以很容易地对 pdf 进行样式化。如果您需要附加 Pdf 或从中提取数据,pyPdf 非常棒。
  • 比萨是一块易碎的垃圾 - 适合制作廉价的 PDF 文件 - 对于专业用途完全没用。
【解决方案3】:

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

“最好的方式”是什么意思?你有什么要求?一些 PDF 要求可以通过“便宜”的开源生成器来完成,或者您最终可能会使用一些商业 PDF 转换器。更高的质量意味着更高的价格。

【讨论】:

  • 感谢您的回答。“最佳方式”表示在该领域具有更多专业知识的人将如何做到这一点。要求非常简单,一种轻量级且易于维护的方式来生成包含文本和表格的 pdf,其中表格可以跨越 n 页
猜你喜欢
  • 2012-08-25
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多