【问题标题】:How can I get the total number of pages in DOMPDF?如何获取 DOMPDF 中的总页数?
【发布时间】:2011-03-30 12:40:47
【问题描述】:

例如Page 1 of 5

有一个example online 说明如何获得Page 1 部分,但没有of 5 部分。就是这样:

.pagenum:before { content: "Page " counter(page); }

我使用的是 0.6 版,$PAGE_NUM$PAGE_COUNT 不起作用。

【问题讨论】:

    标签: php dompdf


    【解决方案1】:

    默认情况下,出于安全原因,内联 PHP 是禁用的,您需要自己在 dompdf_config.custom.inc.php 中启用它。见here

    目前,您使用的 CSS 不支持总页数,但我们计划在 0.6 最终版本中使其工作。

    【讨论】:

    【解决方案2】:

    对于使用新版本 DomPdf 来这里的人

    dompdf 0.7.0 以来,dompdf_config.inc.php 文件已被删除(不再引用):所有 dompdf 选项都应在运行时设置。

    这意味着你必须创建一个 Options 类的新实例

    $domPdfOptions = new Options();
    

    然后您可以使用以下行启用 PHP 内联

    $domPdfOptions->set("isPhpEnabled", true);
    

    其余代码正确,会显示页码和页数

    <script type="text/php">
        if (isset($pdf))
        {
            $x = 72;
            $y = 18;
            $text = "{PAGE_NUM} of {PAGE_COUNT}";
            $font = $fontMetrics->get_font("helvetica", "bold");
            $size = 6;
            $color = array(255,0,0);
            $word_space = 0.0;  //  default
            $char_space = 0.0;  //  default
            $angle = 0.0;   //  default
            $pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
        }
    </script>
    

    更新 正如@london-smith 所指出的,这也适用于 DomPDF 0.8.1

    【讨论】:

      【解决方案3】:

      检查您是否在 dompdf 中启用了 inline_pdf。

      使用这段代码,你可以放在你喜欢的地方,它获取文档的高度和宽度,并把page/total_pages放在右下角。

      <script type = "text/php">
      if ( isset($pdf) ) { 
          $pdf->page_script('
              if ($PAGE_COUNT > 1) {
                  $font = Font_Metrics::get_font("Arial, Helvetica, sans-serif", "normal");
                  $size = 12;
                  $pageText = $PAGE_NUM . "/" . $PAGE_COUNT;
                  $y = $pdf->get_height() - 24;
                  $x = $pdf->get_width() - 15 - Font_Metrics::get_text_width($pageText, $font, $size);
                  $pdf->text($x, $y, $pageText, $font, $size);
              } 
          ');
      }
      

      Seen at the end of this page

      【讨论】:

      • 这对我有用!谢谢。似乎需要使用$pdf-&gt;page_script('')
      【解决方案4】:

      请参阅此错误报告中名为 issue121.php 的附件。为我工作。据我了解,您无法回显页面编号,但您可以在某处绘制它。

      http://code.google.com/p/dompdf/issues/detail?id=121

      【讨论】:

        【解决方案5】:

        嗨,这是我的完整代码...毕竟 HTML 放了这个..

        <?
        require_once("dompdf/dompdf_config.inc.php");
        $dompdf = new DOMPDF();
        $dompdf->load_html(ob_get_clean());
        $dompdf->render();
        $canvas = $dompdf->get_canvas(); 
        $font = Font_Metrics::get_font("helvetica", "bold"); 
        $canvas->page_text(512, 10, "Página: {PAGE_NUM} de {PAGE_COUNT}",$font, 8, array(0,0,0)); 
        
        $filename = "yourNameConvention".date("Y-m-d").'.pdf';
        $dompdf->stream($filename);
        ?>
        

        用一个简单的文件进行测试,然后将所有相关代码与查询等放在一起。等等。

        【讨论】:

          【解决方案6】:

          我不知道您要呈现哪种内容。 我得到了一堆图片和每个站点常量的最大图片数。

          所以一个函数给了我站点编号(总数/最大值),然后我得到了开始创建 pdf 所需的一切。

          @for ($i = 1;$i <= $pages; $i++)
          @if ($i !== 1) 
             <div style="page-break-before: always;"></div>
          @endif
             #Code for each Site
          @end
          

          这就是我将我的站点和它们分开的方式,我还将 $pages 作为刀片变量。

          <div class="info_footer">
               Page <span class="pagenum"></span> / {{$pages}}
          </div>
          

          带样式表:

          .pagenum:before { content: counter(page); }
          

          【讨论】:

            【解决方案7】:

            在php中,可以访问dompdf变量:

            $PAGE_NUM       the current page number
            $PAGE_COUNT     the total number of pages in the document 
            

            更多信息http://code.google.com/p/dompdf/wiki/Usage

            【讨论】:

            • 那么你发现了一个错误。我会考虑测试 0.6beta2 中的错误是否仍然存在,或者检查 - 如果它是回归 - 0.6b1 修复了这个问题。不幸的是,Dompdf 相当不稳定。
            【解决方案8】:

            $PAGE_COUNT 是总页数。

            示例

            <script type="text/php">
            if (isset($pdf) ) {
                echo $PAGE_COUNT;
            }
            </script>
            

            Documentation

            更新

            如果您使用的是不支持此功能的旧版本,请升级。否则,你可能会倒霉。

            【讨论】:

              猜你喜欢
              • 2013-06-09
              • 2012-04-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-03-10
              • 2023-03-12
              • 2014-11-05
              • 2013-11-27
              相关资源
              最近更新 更多