文本在单页/ page_script不工作



我使用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:页面总数
  • $pdf:画布对象
  • $fontMetrics:一个FontMetrics类的实例

如果你使用的是页面文本,你可以访问以下模板变量:

  • {PAGE_NUM}:当前页码
  • {PAGE_COUNT}:总页数

注意:默认情况下不支持解析嵌入式脚本或页面脚本。$dompdf->set_option("isPhpEnabled", true); .使用如下命令启用。这必须在调用$dompdf->render();之前完成。

最新更新