我目前正在测试DOMPDF并使其工作非常好,包括CSS样式,显示从mysql数据库中提取的内容等。
现在我尝试使用一些Javascript,但它不起作用。我使用了一个非常简单的脚本进行测试:
页面上某处的HTML:
<div id='mydiv1' style='width: 100%;height:20px;background:#ddd;'></div>
JS(位于结束</body>
标记之上(但我也在开始<body>
标记后立即尝试过):
<script>
document.getElementById('mydiv1').innerHTML = 'this is a test';
</script>
当我在浏览器中回显此页面时(我正在回显包含完整HTML / PHP页面的变量),该文本出现在DIV中。当我在DOMPDF loadHtml
中放入相同的变量,然后渲染并输出它时,脚本生成的文本不会出现在PDF中(页面的其余部分会出现)。
所以我的问题是:有没有办法让Javascript在DOMPDF生成的PDF中工作?
答案 0 :(得分:1)
不幸的是,DOMPDF不支持javascript。您可以考虑查看类似phantomjs的内容,也可以是used to save pdf files。
答案 1 :(得分:0)
有一个DomPDF选项可以打开内联javascript:
$ isJavascriptEnabled = true;
以下是如何使用DomPDF选项的示例:
$HTML = <<<HTML
!DOCTYPE html>
<html>
<head>
<body>
some html
</body>
<script> somejs </script>
</head>
</html>
HTML;
require_once "sites/all/libraries/dompdf/autoload.inc.php";
use Dompdf\Dompdf;
use Dompdf\Options;
$options = new Options();
$options->set('isJavascriptEnabled', TRUE);
$dompdf = new Dompdf($options);
$dompdf->load_html($HTML);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream('blah.pdf');
我是从DomPDF的选项页面中获取的:https://github.com/dompdf/dompdf/blob/master/src/Options.php