有没有办法让Javascript在DOMPDF生成的PDF中工作?

时间:2017-04-04 22:50:25

标签: javascript html dompdf

我目前正在测试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中工作?

2 个答案:

答案 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