php - dompdf 编号页面但跳过第一页

标签 php dompdf

我使用 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();

这是如何工作的:

  1. https://github.com/dompdf/dompdf/blob/v0.8.2/lib/Cpdf.php#L32中获取所有页面
  2. 将文本添加到除第一页以外的所有页面。

关于php - dompdf 编号页面但跳过第一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53431942/

相关文章:

php - 在 while 语句 PHP/MYSQL 中从时间表计算时间

php - 如何将 Json 数据转换为真实数据 android

PHP7 SoapClient verify_peer_name : SOAP Error: Could not connect to host

laravel-5 - 带有特殊字符的dompdf

php - 使用 PHP/MySQL 生成主从 HTML 表(堆叠和嵌入)

symfony - 如何获取图像的绝对文件系统路径 Symfony2/Twig

php - 如何通过 dompdf 为 pdf 提供背景?

php - Laravel Dompdf 生成 pdf 报错

php - 创建 PDF 时未应用 dompdf 横向 View

php - 尝试循环输出到表的查询