dompdf - 单个页面上的文本/ page_script不起作用

时间:2016-08-17 14:52:06

标签: php dompdf

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

它仍会显示在我的第一页上。

1 个答案:

答案 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();之前完成。