I am working on quotation software where I am using mpdf for quotation generation using HTML format. Header are set by code below.
$mpdf->SetHTMLHeader($header);
$mpdf=>SetHTMLFooter($footer);
Which applies uniformly to all pages. But I need different header to first page. How should I achieve it?
As you wrote, SetHTMLHeader
and SetHTMLFooter
apply to the entire document. If you want different headers / footers for the first page you will have to remove both
$mpdf->SetHTMLHeader($header);
$mpdf->SetHTMLFooter($footer);
And do it like so:
<body>
tag the different header definitions like so:<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" />
This turns on both headers but on the first page shows the "firstpage" header.
IMPORTANT NOTE:
There are actually a few ways to go about it. They are all documented here. I chose to write here the one I think is the most straight forward and will easily work, but I recommend you read the docs and choose the one that best suits your needs.
As Yotam said, there's other ways to acomplish this. If you are using CSS to style your page, as usual, you may find the @page selector useful. It should be something like this:
@page {
header: html_otherpages;
}
@page :first {
header: html_firstpage;
}
Hope this helps.
Regards.
place right after the <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>
In CSS use following :
@page {
header: html_otherpageheader;
footer: html_otherpagesfooter;
}
@page :first {
header: html_firstpageheader;
footer: html_firstpagefooter;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With