3

我正在开发一个将使用 d3.js 生成的 HTML 和 SVG 图表转换为 PDF 的应用程序。图表在页面加载后通过 AJAX 调用呈现。

我正在使用 wkhtmltopdf 0.9.6,它似乎在将静态 HTML5 转换为 PDF 方面做得很好,但我在转换 SVG 图表时遇到了问题。

渲染简单的多系列折线图时,大部分图表区域没有渲染。即使在禁用动画之后。--redirect-delay即使设置为 8000,使用也无济于事。

有趣的是,图表的大部分部分都被渲染了,比如图例和轴。只是没有内容。

其他人遇到过这个或类似的问题吗?

谢谢你。

4

2 回答 2

1

如果您在 shell 中使用 wkhtmltopdf,作为在源代码中设置计时器的替代方法,您可以添加此选项:

--javascript-delay 30000

例如,一个完整的命令可能如下所示:

wkhtmltopdf --enable-javascript --debug-javascript --javascript-delay 30000 --images http://www.google.com google.pdf
于 2015-11-24T16:31:29.857 回答
0

添加此脚本的最后一页:

function sleep(milliSeconds) {
    var startTime = new Date().getTime(); // get the current time
    while (new Date().getTime() < startTime + milliSeconds); // hog cpu
}

sleep(5000);

并且: --redirect-delay -> 5000

使用库 d3.js 不压缩其他 js。

于 2014-06-05T20:04:07.433 回答