我正在处理的产品在HTML5信息中心上有一些不错的图表。图表使用Flot在Javascript中呈现。
用户希望以固定的时间表每天通过电子邮件将此信息中心作为PDF报告发送给他们。例如,他们希望每天早上8点收到一封电子邮件,然后通过电子邮件发送给他们。
我已经想过使用Python Requests(即做一个request.get
)来获取页面的HTML5源,然后使用{将生成的HTML5页面转换为PDF {3}}但这显然不起作用。
Javascript图表是最令人头疼的问题,因为除非在具有良好Javascript支持的浏览器中查看,否则它们不会呈现,因此概述的方法不会呈现Javascript图形。
将动态生成的HTML5页面转换为PDF的推荐方法是什么?其他人如何做到这一点?
答案 0 :(得分:2)
PhantomJS是解决方案。它是一个无头的WebKit实现,它允许我们使用Javascript图表和所有内容将仪表板渲染为PDF。
我现在已经设置了一个批处理作业,该作业每天都会运行,将我们的仪表板转换为通过电子邮件发送给用户的PDF文档。
<强>附录强>
其他一些需要注意的事项。在PhantomJS的当前2.1版本中,有一个错误导致渲染到PDF以进行剪辑。修复计划为2.2。 bug report上详述的临时解决方法是设置文档的CSS缩放级别。以下CSS片段适用于我。
html {
zoom: 50%;
}