如何从 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 库查询客户端的时区