【问题标题】:dompdf - text on a single page / page_script doesnt workdompdf - 单页上的文本/page_script 不起作用
【发布时间】:2016-09-13 09:01:50
【问题描述】:

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

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

【问题讨论】:

  • 看起来不错,但是你能添加更多与dompdf相关的代码吗?在 v0.7.0 之前(包括 v0.7.0),您必须先呈现 PDF,然后才能应用页面脚本。
  • 你好 Brian :) 我用 dompdf 启动更新了我的帖子。
  • 每个页面上$PAGE_NUM的值是多少?
  • 好吧..目前我没有收到以下错误:注意:未定义变量:当我启用 php 时画布,否则我在 pdf 上没有输出
  • 我想我应该更好地阅读代码。 $canvas 在脚本中不可用,将该变量更改为 $pdf

标签: php dompdf


【解决方案1】:

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

【讨论】:

  • 你知道如何设置PAGE 变量的样式吗?黑体字,因为他们被送到$pdf->text()?
  • 您必须使用selectFont() 方法选择合适的字体(我刚刚意识到我忽略了在该代码中更正,答案已编辑)。
  • 我想我必须创建三个左右的 $pdf->text() 实例才能实现:“Page of <strong>{PAGE_NUM}</strong> of <strong>{PAGE_COUNT}</strong>” :-( 谢谢!
  • 不幸的是,你现在会这样做。
猜你喜欢
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
相关资源
最近更新 更多