繁体   English   中英

在服务器上渲染客户端图表

[英]Rendering client side charts on the server

我正在使用的产品在HTML5仪表板上有一些漂亮的图形。 图形使用Flot在Javascript中呈现。

用户希望此仪表板每天以固定的时间表作为PDF报告通过电子邮件发送给他们。 因此,例如,他们希望每天早上8点通过电子邮件发送给他们。

我曾考虑过使用Python的Requests (即执行request.get )来获取页面的HTML5源,然后使用Weasyprint将生成的HTML5页面转换为PDF,但这显然行不通。

JavaScript图表是最令人头疼的问题,因为除非在具有良好Javascript支持的浏览器中查看,否则它们不会呈现,因此概述的方法不会呈现Javascript图形。

将动态生成的HTML5页面转换为PDF的推荐方法是什么? 其他人如何做到这一点?

PhantomJS是解决方案。 这是一个无头的WebKit实现,使我们能够将带有Javascript图形和所有图形的仪表板呈现为PDF。

现在,我已经设置了一个批处理作业,该作业每天运行,将仪表板转换为PDF文档,并通过电子邮件发送给用户。

附录

其他一些事情要注意。 在当前的PhantomJS 2.1版本中,存在一个错误,该错误会导致PDF的渲染被剪切。 该修复程序计划在2.2中发布。 错误报告中详述的临时解决方法是设置文档的CSS缩放级别。 以下CSS片段对我有用。

html {
    zoom: 50%;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM