使用 CakePDF 和 DomPDF 引擎为所有 PDF 页面生成页脚

Generate footer for all PDF pages with CakePDF and the DomPDF engine

我正在尝试使用 CakePDF,这是一个用于生成 PDF 的 CakePHP 插件,我选择了 DomPDF 作为 PDF 渲染引擎。

到目前为止,生成的 PDF 非常好,但我无法在 PDF 的每一页上放置页脚。我已经通读了几乎不存在的 CakePDF 文档,但没有关于此功能的示例或参考。

我尝试在 CakePdf 选项上设置页脚,但它似乎不起作用

        $this->pdfConfig = array(
        'download' => false,
        'filename' => 'foo.pdf',
        'margin' => array(
            'bottom' => 5,
            'left' => 10,
            'right' => 10,
            'top' => 45
        ),
        'options' => array(
            'footer-html'=>Router::url('/', true).'View/Pdf/pdf_footer.ctp'
            )
    );

我也试过简单地在 PDF 视图上放一个 div,但它只显示在第一页:

  <body>
    <div id="page-wrap" class="pdf">
    <div style="text-align: center; position: fixed; width: 100%; bottom:5px;">Footer text here</div>
<!-- insert pdf code here -->
</body>

我是不是漏掉了什么?

如果不深入研究代码,很难看出 CakePDF 如何支持 headers/footers 使用这些选项。文档表明可选功能因引擎而异。您正在尝试的很可能是特定于其他引擎之一的。

就 HTML+CSS 页脚而言,您遇到的只是 dompdf 如何处理文档的一个怪癖。 dompdf 基本上从遇到它们的页面开始添加页面静态内容(例如固定位置元素)。 Headers/footers 应该位于文档的顶部(正文元素内的第一个元素),以便出现在所有页面上。