7

例如Page 1 of 5.

网上有一个例子,说明如何获得Page 1零件而不是of 5零件。就是这个:

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

我正在使用 0.6 版,$PAGE_NUM并且$PAGE_COUNT无法正常工作。

4

8 回答 8

9

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

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

于 2011-03-30T19:53:37.870 回答
9

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

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

这意味着您必须创建一个新的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

于 2017-01-20T15:24:58.773 回答
4

检查您是否在 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);
        } 
    ');
}

见本页末尾

于 2013-02-25T14:29:16.510 回答
0

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

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

于 2011-08-24T19:19:38.143 回答
0

嗨,这是我的完整代码......毕竟 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);
?>

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

于 2015-08-27T18:57:35.353 回答
0

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

所以一个函数给了我站点编号(总数/最大值),然后我得到了开始创建 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); }
于 2016-05-27T13:29:42.373 回答
-1

$PAGE_COUNT是总页数。

例子

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

文档

更新

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

于 2011-03-30T12:46:30.390 回答
-1

在 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

于 2011-03-30T12:46:58.470 回答