我创建了一个应用程序,该应用程序使用Google maps api对地址进行地理编码并将标记添加到地图中。它在我的观点中也与Postgis有一些互动。一切都很好。
我遇到的问题是如何从完全呈现的HTML文件创建PDF,以便可以将所有上下文数据和谷歌地图呈现为PDF格式。我需要通过与Web应用程序交互的人通过电子邮件发送pdf来进行地理编码。因此,最终结果是pdf结果并附加到电子邮件。
我查看了Reportlab,它只能通过视图创建pdf(对此很有效,但不能满足我的需求)。
我也看过wkhtmltopdf,乍一看它似乎只能从视图中呈现,除非我遗漏了一些东西。
问:是否可以从呈现的网页创建pdf(包括客户端创建的Google地图)?如果可能的话,一个简单的例子将非常受欢迎。
由于
编辑:添加工作流程以尝试澄清问题所在
我需要将完全呈现的网页转换为PDF。 Reportlab(例如)在第2点之后调用,在第3点呈现网页之前,因此它无法创建包含这3个Google地图的PDF。
答案 0 :(得分:2)
首先,根据模型 - 视图 - 控制器范例,可下载的PDF 是视图 - 因此请查看Django PDF documentation。
如果您正在考虑在PDF中添加Google地图,则有3个选项:
As stated in the bottom of the Django Docs on generating PDFs,Pisa通过获取HTML页面,然后从中创建PDF,我之前使用过它,这意味着您可以使用Django模板构建页面,然后而不是返回它,通过HTML到PDF处理器运行它。您需要捕获此生成的PDF并根据需要将其附加到电子邮件中。
与编辑匹配的附录。
除了关于PDF视图的部分外,上述内容仍然有效。无论如何,Static Maps API应该为您提供需要包含在转换为PDF的原始HTML中的图像。
答案 1 :(得分:1)
查看HTML2Canvas(http://html2canvas.hertzen.com/)是否适用于您的网页。如果是这样,您可以将画布导出为png,然后将if发送到您的服务器。
您的服务器可以将该png转换为pdf然后返回该pdf,因此系统会提示用户下载它。
另一个选项是xhtml2pdf(http://www.xhtml2pdf.com/),但根据地图的渲染方式,它可能无效。值得一试。