如何从 Google 的 appengine 动态生成 pdf?

Posted

技术标签:

【中文标题】如何从 Google 的 appengine 动态生成 pdf?【英文标题】:How to dynamically generate a pdf from Google's appengine? 【发布时间】:2010-09-24 13:41:18 【问题描述】:

我想创建一个可以在 Google 的 appengine 上运行的应用程序。

但是,此应用程序需要能够动态生成 PDF。

我该怎么做?

【问题讨论】:

【参考方案1】:

您可以使用reportlab library 从 Python 生成 PDF。您可以只将 ReportLab 文件包含在应用程序的代码中,也可以包含 ReportLab 代码的 zip archive,然后将其插入应用程序的 sys.path

【讨论】:

reportlab 真的可以在 AppEngine 下工作吗?我的印象可能是错误的,认为它使用了 AppEngine 不允许的 C 扩展。 Reportlab 是纯 Python,但它对图像使用 PIL,因此您无法将它用于包含图像的 PDF。 GAE 现在支持 PIL,所以这应该不是问题。 这真的有效吗?阅读reportlab API,您似乎必须写入文件。这在 GAE 上是不可能的。 您可以写入任何类似文件的对象,这意味着您可以写入例如response.out。例如,konryd.blogspot.com/2008/04/…【参考方案2】:

要克服 google appengine 中的文件数限制,您可以将您的 reportlib 打包成一个 zip 文件并使用它。请务必查看我遇到的这个问题..

http://code.google.com/p/googleappengine/issues/detail?id=1085

另外,您可以使用 pisa、htmllib 和 pyPdf 使用 html 模板生成 pdf。

一切顺利。

变量

【讨论】:

【参考方案3】:

我会推荐 PyFPDF,它是轻量级但功能强大的 php FPDF 库的纯 Python 端口。它几乎只有几十 KB。

见http://code.google.com/p/pyfpdf/

【讨论】:

【参考方案4】:

Google 有一个新的“Conversion API”可以解决您的所有问题。以下是该网站的描述:

App Engine Conversion API 使用 Google 的基础架构在常见文件类型之间转换文档,以提高效率和规模。该 API 支持 HTML、PDF、文本和图像格式之间的同步或异步转换,并可选择执行光学字符识别 (OCR)。

【讨论】:

转换 API 似乎已停用。

以上是关于如何从 Google 的 appengine 动态生成 pdf?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Appengine和来自API的Python脚本流数据将数据流式传输到Google Cloud BigQuery?

有没有办法从 Google appengine 标准向网络浏览器发送推送通知? [关闭]

使用 Google AppEngine XMPP 库查询客户端的时区

如何在 Google AppEngine 上使用 JDBC

如何在 Google AppEngine 上实现“实时”消息传递?

如何使用 google-appengine 和 django-nonrel 模仿“select_related”?