wkhtmltopdf javascript延迟输出谷歌地图

Afr*_*ela 9 wkhtmltopdf

我正在与WKTHMTOPDF合作并且非常享受它.但是,正在转换的页面具有谷歌地图,并且生成的PDF随着地图的一半加载而出现.我知道有一个选项可以--javascript--delay在以前的版本中添加,但它似乎已被弃用.我使用的是0.99版本.有不同的选择吗?

mwa*_*wag 25

还有一种更好的方法,不需要使用--javascript - 延迟(并且有一个好处,就是在你知道所需的延迟实际上是什么之前不要求你设置延迟时间).

添加回调到'tileloaded'事件:

google.maps.event.addListenerOnce(map, 'tilesloaded', function(){
   window.status = 'ready_to_print';
});
Run Code Online (Sandbox Code Playgroud)

然后调用wkhtmltopdf并将--window.status选项设置为'ready_to_print',例如

wkhtmltopdf --window-status ready_to_print map.html map.pdf
Run Code Online (Sandbox Code Playgroud)

显然你可以将字符串'ready_to_print'更改为你想要的任何东西,只要在调用wkhtmltopdf并且在上面的代码触发之前window.status还没有等于那个值.

类似的方法可以与谷歌图表一起使用,但适当的事件使用不同的名称.

  • 这对我不起作用。脚本 wkhtmltopdf 刚刚停止。 (2认同)

Roh*_*hal 10

您可以使用wkhtmltopdf版本0.12.0

我也在网站上使用了一些高度javascript的内容.以前,版本0.99没有正确渲染但是当我使用版本0.12使用该选项时--javascript-delay,一切看起来都很好.

你也可以添加其他选项来完美加载你的javascript --enable-javascript,--no-stop-slow-scripts等等

确保在使用--javascript-delay时必须使用适当的时间延迟,这取决于您的网站需要多长时间才能呈现.如果你将使用更多的时间延迟,那么执行将花费更多的时间,如果你将花费更少的时间延迟,那么javascript将无法正确加载.
指向wkhtmltopdf最新版本的链接


ash*_*ulz 5

--javascript-delay完全不建议使用该选项。另外,建议升级到最新版本-0.9.9是一个非常旧的版本。