mPDF 不在新页面上添加页眉/页脚

Posted

技术标签:

【中文标题】mPDF 不在新页面上添加页眉/页脚【英文标题】:mPDF not adding header/footer on new pages 【发布时间】:2014-06-06 09:46:15 【问题描述】:

基本上,页眉和页脚只显示在第一页和我手动分页后的第一页。

但由于 html 内容过长,页眉和页脚不会显示在自然延续的任何其他页面上。 (即没有手册的地方)

<htmlpageheader name="header">Page Hader</htmlpageheader>
<htmlpagefooter name="footer"><p>Copyright <b>blablabla</b> 1999 - <?php echo date('Y') ?></p></htmlpagefooter>

页眉+页脚会显示在这个页面上

<sethtmlpageheader name="header" page="all" value="on" show-this-page="1" />
<sethtmlpagefooter name="footer" page="all" value="on" />


<p>(PDF cover)</p>
<h1>Report</h1>

页眉+页脚将显示在第一页,但不显示在后续页面

<pagebreak />
<sethtmlpageheader name="header" page="all" value="on" show-this-page="1" />
<sethtmlpagefooter name="footer" page="all" value="on" />
LONG HTML CONTENT
THAT EXCEEDS PAGE SIZE

【问题讨论】:

@page 没有解决我的问题。所以经过大量搜索后,我找到了问题的解决方案。我在这里回答了你。 【参考方案1】:

你可以像这样添加@page:

@page 
 header: header_name;
 footer: footer_name;

Using @page

Headers & Footers

希望对你有用

【讨论】:

只是为了明确一点:您不必将这些添加到 css 中,但如果出于任何其他原因您使用 @page(例如边距、填充......),那么它是必须将页眉和页脚信息放在那里。【参考方案2】:

如果您在样式中使用@page,删除@page 可以解决问题。这就是我所拥有的,并且对我有用。

【讨论】:

如果您使用的是@page,请查看 Giovani Generali 的答案,因为它是针对这种情况的正确答案。【参考方案3】:

这里我给你提供一个解决问题的代码sn-p。

<?php

$mpdf = new mPDF();

$mpdf->useOddEven = 1;    // Use different Odd/Even headers and footers and mirror margins

// Define the Headers before writing anything so they appear on the first page

$mpdf->SetHTMLHeader('<div style="text-align: right; font-weight: bold;">My document</div>','O');

$mpdf->SetHTMLHeader('<div style="border-bottom: 1px solid #000000;">My document</div>','E');

$mpdf->SetHTMLFooter('

<table  style="vertical-align: bottom; font-family: serif; font-size: 8pt; color: #000000; font-weight: bold; font-style: italic;"><tr>

<td ><span style="font-weight: bold; font-style: italic;">DATE j-m-Y</span></td>

<td  align="center" style="font-weight: bold; font-style: italic;">PAGENO/nbpg</td>

<td  style="text-align: right; ">My document</td>

</tr></table>

');  // Note that the second parameter is optional : default = 'O' for ODD

$mpdf->SetHTMLFooter('

<table  style="vertical-align: bottom; font-family: serif; font-size: 8pt; color: #000000; font-weight: bold; font-style: italic;"><tr>

<td ><span style="font-weight: bold; font-style: italic;">My document</span></td>

<td  align="center" style="font-weight: bold; font-style: italic;">PAGENO/nbpg</td>

<td  style="text-align: right; ">DATE j-m-Y</td>

</tr></table>

', 'E');

$mpdf->WriteHTML('Hallo World');

$mpdf->Output();

有关更多信息,请参阅此链接。MPDF Headers and Footers

【讨论】:

以上是关于mPDF 不在新页面上添加页眉/页脚的主要内容,如果未能解决你的问题,请参考以下文章

使用不同的页眉和页脚在Drupal上创建页面

如何在Excel中添加页眉页脚?

如何在 mPDF 中使用引导程序?

将页脚放置在具有固定页眉的页面底部

不同页面上缺少全局页眉/页脚提示对象(PHP)

我想使用 mpdf 在 PDF 中设置页眉和页脚