我正在使用 wkhtmltopdf 通过 php 将页面转换为 pdf。这在 Windows 和 ubuntu 服务器上运行良好,但是,在不同的 linux 服务器上,有时(大约 6 次中有 5 次)不执行 javascript(pdf 仅包含不是由 javascript 生成/修改的数据)。
例如,我用它来渲染一些包含 jqplot 图形的页面。有问题的服务器似乎可以很好地处理外部链接,但是当使用指向自身的链接时,它大多数时候都无法加载 javascript。
我使用了静态二进制文件(v 0.9.9 和 v0.11.0),它们都以同样的方式失败。使用--javascript-delay(或--redirect-delay)没有任何效果(除了等待更长时间生成pdf)。在 v0.11.0 上,我还使用了 --window-status,它通常会在短时间内阻塞服务器(可能是因为从未加载过 javascript,因此未设置 window.status)。
此外,当未加载 javascript 时,wkhtml 的输出不会显示任何错误/警告。
关于可能导致这种情况的任何想法或建议都会有所帮助。
编辑:
<script type="text/javascript">
$(function(){
$.atk4(function(){ $('#myrealm_charts_jqplot').univ().jqplot(...pramas);
$('#myrealm_charts_jqplot_5').univ().jqplot(...params);
$('#myrealm_charts_jqplot_6').univ().jqplot(...params);
$('#myrealm_charts_jqplot_7').univ().jqplot(...params);
; });
});
</script>
...
<body class="atk-fullscreen gs-10-fluid atk-sticky">
<div class="gs-wrap atk-layout">
<div id="Content">
<div id="myrealm_charts" class="page_charts">
<div style="height: '' ;width:'600px';">
<div id="myrealm_charts_jqplot" class=" pdf-analytics-chart" style="">
</div>
</div>
...
</div>
</div>
</div>
</body>
该页面没有任何由 firebug 报告的错误。