我正在开发报价软件,我使用 mpdf 使用 HTML 格式生成报价。标题由下面的代码设置。
$mpdf->SetHTMLHeader($header);
$mpdf=>SetHTMLFooter($footer);
统一适用于所有页面。但我需要与首页不同的标题。我该如何实现?
正如您所写,
SetHTMLHeader
和SetHTMLFooter
适用于整个文档。如果您想要第一页使用不同的页眉/页脚,则必须将两者删除
$mpdf->SetHTMLHeader($header);
$mpdf->SetHTMLFooter($footer);
然后这样做:
<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>
<sethtmlpageheader name="firstpage" value="on" show-this-page="1" /> <sethtmlpageheader name="otherpages" value="on" />
这会打开两个标题,但在第一页上显示“firstpage”标题。
重要提示:
实际上有几种方法可以解决这个问题。它们都记录在here。我选择在这里写下我认为最直接且容易工作的一个,但我建议您阅读文档并选择最适合您需求的一个。
正如 Yotam 所说,还有其他方法可以实现这一点。如果您像往常一样使用 CSS 来设计页面样式,您可能会发现 @page 选择器很有用。应该是这样的:
@page {
header: html_otherpages;
}
@page :first {
header: html_firstpage;
}
希望这有帮助。
问候。
放在
<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;
}
你可以欺骗系统
//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);