Mpdf 第一页有不同的标题

问题描述 投票:0回答:4

我正在开发报价软件,我使用 mpdf 使用 HTML 格式生成报价。标题由下面的代码设置。

$mpdf->SetHTMLHeader($header);
$mpdf=>SetHTMLFooter($footer);

统一适用于所有页面。但我需要与首页不同的标题。我该如何实现?

php mpdf
4个回答
22
投票

正如您所写,

SetHTMLHeader
SetHTMLFooter
适用于整个文档。如果您想要第一页使用不同的页眉/页脚,则必须将两者删除

$mpdf->SetHTMLHeader($header);
$mpdf->SetHTMLFooter($footer);

然后这样做:

  1. 在 PDF 的 HTML 代码中,将不同的标头定义放在
    <body>
    标签之后,如下所示:
<htmlpageheader name="firstpage" style="display:none">
    <div style="text-align:center">First Page</div>
</htmlpageheader>

<htmlpageheader name="otherpages" style="display:none">
    <div style="text-align:center">{PAGENO}</div>
</htmlpageheader>
  1. 像这样设置标题(仍在第一页的代码中)
<sethtmlpageheader name="firstpage" value="on" show-this-page="1" />
<sethtmlpageheader name="otherpages" value="on" />

这会打开两个标题,但在第一页上显示“firstpage”标题。

  1. 页脚也是如此。


重要提示:

实际上有几种方法可以解决这个问题。它们都记录在here。我选择在这里写下我认为最直接且容易工作的一个,但我建议您阅读文档并选择最适合您需求的一个。


13
投票

正如 Yotam 所说,还有其他方法可以实现这一点。如果您像往常一样使用 CSS 来设计页面样式,您可能会发现 @page 选择器很有用。应该是这样的:

@page {
    header: html_otherpages;
}

@page :first {
    header: html_firstpage;
}

希望这有帮助。

问候。


11
投票

放在

<body>

之后
<htmlpageheader name="firstpageheader" style="display:none">
    <div style="text-align:center"> first page header</div>
</htmlpageheader>

<htmlpagefooter name="firstpagefooter" style="display:none">
    <div style="text-align:center">first page footer</div>
</htmlpagefooter>

<htmlpageheader name="otherpageheader" style="display:none">
    <div style="text-align:center"> all page Header</div>
</htmlpageheader>

<htmlpagefooter name="otherpagesfooter" style="display:none">
    <div style="text-align:center">all page footer </div>
</htmlpagefooter>

在 CSS 中使用以下内容:

@page {  
    header: html_otherpageheader;
    footer: html_otherpagesfooter;
}

@page :first {    
    header: html_firstpageheader;
    footer: html_firstpagefooter;
}

4
投票

你可以欺骗系统

//set your header firstpage
$mpdf->SetHTMLHeader($headerFirstpage); 
//set your footer firstpage
$mpdf->SetHTMLFooter($footerFirstpage);   
//write a space 
$mpdf->WriteHTML(' ');
//set your header
$mpdf->SetHTMLHeader($header); 
//set your footer
$mpdf->SetHTMLFooter($footer); 
//set your content
$mpdf->WriteHTML($content);     
© www.soinside.com 2019 - 2024. All rights reserved.