我遇到DOMPDF问题。我正在运行PHP 5.3.3并拥有最新的DOMPDF 0.6.0 beta2。
我已经创建了这个HTML模板:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Printed document</title>
</head>
<body>
<script type="text/php">
echo "test";
if ( isset($pdf) ) {
echo $PAGE_NUM;
}
</script>
</body>
</html>
此文件用于呈现PDF:
<?php
require_once("dompdf/dompdf_config.inc.php");
$templateFile = 'template.html';
$content = file_get_contents($templateFile);
if ($content !== false) {
$dompdf = new DOMPDF();
$dompdf->load_html($content);
$dompdf->render();
$dompdf->stream("test.pdf");
}
?>
在dompdf_config.inc.php中,我将DOMPDF_ENABLE_PHP设置为true,但仍然在我呈现的PDF中显示测试字符串或页数。为什么呢?
我在这里压缩了我的小例子: http://uploads.dennismadsen.com/pdf.zip
如果您需要更多信息,请告诉我。
答案 0 :(得分:5)
您已经回答了自己的问题,为什么代码无法正常工作。幸运的是,从beta 2开始,有一种方法可以在DOMPDF 0.6.0中生成你想要的东西。试试下面的代码(不需要内联脚本):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Printed document</title>
<style>
.pagenum:before { content: counter(page); }
</style>
</head>
<body>
<p>You are currently reading page <span class="pagenum"></span>.</p>
</body>
</html>
正如您所看到的,DOMPDF现在支持基于CSS的计数器,默认情况下会实现页面计数器。只需使用类似于上面的样式/元素组合。
注意:我们尚未找到使用此方法提供总页数的方法。
答案 1 :(得分:0)