我需要根据用户选择动态加载一些html内容到print.php页面,该页面使用php dompdf库将html导出为PDF。现在我必须在html中包含jQuery和其他一些js库,但jQuery似乎没有正确注册(甚至根本没有注册)。在下面的例子中,我只是试图通过使用.html()
将文本简单地插入到#result
中,但输出时却得到了空的PDF。
<?php
require_once("dompdf_config.inc.php");
$codigo= '
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="result"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$( document ).ready(function() {
$( "#result" ).html( "This is Test" );
});
</script>
</body>
</html>
';
$codigo = utf8_decode($codigo);
$dompdf = new DOMPDF();
$dompdf->load_html($codigo);
ini_set("memory_limit","32M");
$dompdf->render();
$dompdf->stream("ejemplo.pdf");
你能告诉我这是否可行,或者我在这里做错了什么吗?
感谢
dompdf仅支持HTML+CSS。JavaScript(以及jQuery)根本不受支持。为了让dompdf呈现任何通过JavaScript动态生成的内容,您必须在浏览器中捕获页面内容并将其发送回服务器。您可以使用隐藏的表单,从文档中捕获相关内容,将其插入表单中的textarea
字段,然后将其提交回服务器/domppdf进行呈现。
如果你想在渲染中与浏览器完全兼容,你需要看看PhantomJS之类的东西。