我使用dompdf 0.7.0,并尝试在渲染后在PHP中写下我的pdf文本。我需要特定页面上的文本,并从布莱恩的回答中找到以下内容DomPDF {PAGE_NUM}不在第一页
函数page_script听起来像正确答案。我可以检查当前循环是否在第3页或其他地方
我必须为这个功能启用任何选项吗?
的例子:
$dompdf = new Dompdf( $options );
$dompdf->set_option('default_font', 'open sans');
$dompdf->set_option('fontHeightRatio', 1);
$dompdf->setPaper('A4')
$dompdf->set_option('enable_html5_parser', true);
$dompdf->set_option('enable_php', true);
$dompdf->loadHtml( $html );
$dompdf->render();
$canvas = $dompdf->get_canvas();
$canvas->page_script('
if ($PAGE_NUM > 1) {
$current_page = $PAGE_NUM-1;
$total_pages = $PAGE_COUNT-1;
$canvas->text(0, 0, "$current_page / $total_pages", "open sans condensed", 10, array(0,0,0));
}
');
它仍然显示在我的第一页。
$canvas
将无法从页面脚本中获得,因为它超出了范围。canvas对象可以在页面脚本中引用为$pdf
。
尝试以下page_script
呼叫:
$canvas->page_script('
if ($PAGE_NUM > 1) {
$current_page = $PAGE_NUM-1;
$total_pages = $PAGE_COUNT-1;
$font = $fontMetrics->getFont("open sans condensed", "normal"); // or bold, italic, or bold_italic
$pdf->text(0, 0, "$current_page / $total_pages", $font, 10, array(0,0,0));
}
};
在页面脚本或嵌入脚本中有一些变量可用:
-
$PAGE_NUM
:当前页码 -
$PAGE_COUNT
:页面总数 -
$fontMetrics
:一个FontMetrics类的实例
$pdf
:画布对象如果你使用的是页面文本,你可以访问以下模板变量:
-
{PAGE_NUM}
:当前页码 -
{PAGE_COUNT}
:总页数
注意:默认情况下不支持解析嵌入式脚本或页面脚本。$dompdf->set_option("isPhpEnabled", true);
.使用如下命令启用。这必须在调用$dompdf->render();
之前完成。