如何获取DOMPDF中的总页数?

Ped*_*dro 7 php dompdf

例如Page 1 of 5.

网上有一个如何获得Page 1部分但不是of 5部分的例子.就是这个:

.pagenum:before { content: "Page " counter(page); }
Run Code Online (Sandbox Code Playgroud)

我使用的是版本0.6,$PAGE_NUM并且$PAGE_COUNT不起作用.

Fab*_*ger 9

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

目前,您使用的CSS不支持总页数,我们计划在最终的0.6中使用它.


Ere*_*Paz 9

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

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

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

$domPdfOptions = new Options();
Run Code Online (Sandbox Code Playgroud)

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

$domPdfOptions->set("isPhpEnabled", true);
Run Code Online (Sandbox Code Playgroud)

其余代码是正确的,将显示页码和页数

<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>
Run Code Online (Sandbox Code Playgroud)

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


Sal*_* P. 5

检查您是否已在 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);
        } 
    ');
}
Run Code Online (Sandbox Code Playgroud)

见本页末尾