如何在 pdf 中不显示页码 = 1? (HTML CSS)

Posted

技术标签:

【中文标题】如何在 pdf 中不显示页码 = 1? (HTML CSS)【英文标题】:How can I not display page number = 1 in pdf ? (hmtl css) 【发布时间】:2017-10-12 12:48:03 【问题描述】:

我的代码 html 是这样的:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Print PDF</title>

        <style type="text/css"> 
            .footer  position: fixed; left: 0px; right: 0px; height: 50px;text-align: center; 
            .footer .pagenum:before  content: counter(page); 
        </style>

    </head>
    <body>
        <h1>This is test</h1>

        <table class="tg">
            <tr>
                <th class="tg-3wr7">kolom 1</th>
                <th class="tg-3wr7">kolom 2</th>
                <th class="tg-3wr7">kolom 3</th>
                <th class="tg-3wr7">kolom 4</th>
                <th class="tg-3wr7">kolom 5</th>
            </tr>
            @php ($row = 22)
            @for($i=0;$i<$row;$i++)
            <tr>
                <td class="tg-rv4w">test 1</td>
                <td class="tg-rv4w">test 1</td>
                <td class="tg-rv4w">test 1</td>
                <td class="tg-rv4w">test 1</td>
                <td class="tg-rv4w">test 1</td>
            </tr>
            @endfor
        </table>

         <div class="footer">
            <span class="pagenum"></span>
        </div>
    </body>
</html>

如果 $row = 22,它将只显示 1 个这样的页面:

如果$row = 202,会这样显示7页;

多页时,第一页不显示页码。

但是当只有一页时,第一页显示页码

我想要的是:

我想在只有一页的时候让页码消失

我该怎么做?

【问题讨论】:

向我们展示您导出到 pdf 的代码 【参考方案1】:

更新关于changes 的 dompdf >= 0.7.0 版本

    由于 dompdf_config.inc.php 文件已从此版本中删除(并且不再引用),所有 dompdf 选项都应在运行时设置。

    FontMetrics 类现在被实例化而不是静态的。简化从早期版本的 dompdf 迁移嵌入式脚本 我们通过 $fontMetrics 变量。请更新您的嵌入式脚本。为了 例如,FontMetrics::get_font('helvetica') 现在是 $fontMetrics-&gt;getFont('helvetica')

~感谢Dennis Ameling's answer 获取更新信息。

通过查看dompdf_config.inc.php 文件。事实证明,DOMPDF_ENABLE_PHP 设置为false,从而导致内联 php 脚本被忽略。我只是将dompdf_config.custom.inc.php 编辑为以下内容,一切都很好,并且可以使用view 中的后续代码。

在 dompdf/dompdf_config.custom.inc.php 中

<?php
    define("DOMPDF_ENABLE_PHP", true);

在运行时

$dompdf->set_option("isPhpEnabled", true);

然后,在我的 html 文件中

<body>
    <script type="text/php">
        if ( isset($pdf) ) 
            // OLD 
            // $font = Font_Metrics::get_font("helvetica", "bold");
            // $pdf->page_text(72, 18, "PAGE_NUM of PAGE_COUNT", $font, 6, array(255,0,0));
            // v.0.7.0 and greater
            $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>
    <div>

如果你走这条路,别忘了重启 Apache

【讨论】:

以上是关于如何在 pdf 中不显示页码 = 1? (HTML CSS)的主要内容,如果未能解决你的问题,请参考以下文章

如何批量读取文件(PDF或Word)页数并自动显示在文件名称中?

从 html 转换的 pdf 中的页码 - pdfkit、python/django

如何使用 wkhtmltopdf 获取 html 生成的 pdf 中的页码

MPDF PAGENO在codeigniter中无法在pdf中显示页码

uiwebview中pdf的页码

PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件?