我使用 dompdf
类,我需要为每个页面进行页面编号
我这样做了并且有效:
$dompdf = new Dompdf();
$dompdf->load_html($html);
$dompdf->render();
$canvas = $dompdf->get_canvas();
$font = $dompdf->getFontMetrics()->get_font("helvetica", "bold");
$canvas->page_text(72, 18, "Header: {PAGE_NUM}", $font, 6, array(0,0,0));
我需要的只是跳过第一页,从第二页开始编号。
我该怎么做?
最佳答案
这是对我有用的:
$dompdf = new Dompdf();
$dompdf->load_html($html);
$dompdf->render();
$canvas = $dompdf->get_canvas();
$cpdf = $canvas->get_cpdf();
$font = $dompdf->getFontMetrics()->get_font("helvetica", "bold");
$firstPageId = $cpdf->getFirstPageId();
$objects = $cpdf->objects;
$pages = array_filter($objects, function($v) {
return $v['t'] == 'page';
});
$number = 1;
foreach($pages as $pageId => $page) {
if(($pageId + 1) !== $firstPageId) {
$canvas->reopen_object($pageId + 1);
$canvas->text(72, 18, "Header: $number", $font, 6, array(0,0,0));
$canvas->close_object();
$number++;
}
}
$dompdf->stream();
这是如何工作的:
- 从https://github.com/dompdf/dompdf/blob/v0.8.2/lib/Cpdf.php#L32中获取所有页面
- 将文本添加到除第一页以外的所有页面。
关于php - dompdf 编号页面但跳过第一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53431942/