我使用dompdf 0.7.0并尝试在渲染后在我的pdf上用PHP写下文本。我需要特定页面上的文本,并从Brian的答案中找到以下内容 DomPDF {PAGE_NUM} not on first page
函数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));
}
');
它仍会显示在我的第一页上。
答案 0 :(得分:1)
$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
:总页数$pdf
:画布对象$fontMetrics
:FontMetrics类的一个实例如果您正在使用页面文本,则可以访问以下模板变量:
{PAGE_NUM}
:当前页码{PAGE_COUNT}
:总页数注意:默认情况下,禁用对解析嵌入式脚本或页面脚本的支持。使用以下命令启用它:$dompdf->set_option("isPhpEnabled", true);
。这必须在致电$dompdf->render();
之前完成。