I don't know if you tried it according to my suggestion or not, but it should be like this :
public function pdf_01()
{
$mpdf = new \Mpdf\Mpdf();
$html = '
<html>
<head>
<style>
@page {
size: auto;
header: _blank;
footer: _blank;
}
@page page_first {
header: html_Header;
footer: _blank;
}
@page page_last {
header: _blank;
footer: html_Footer;
}
@page noheader {
header: _blank;
footer: _blank;
}
div.page_first {
page-break-before: right;
page: page_first;
}
div.page_last {
page-break-before: right;
page: page_last;
}
div.noheader {
page-break-before: right;
page: noheader;
}
</style>
</head>
<body>
<htmlpageheader name="Header" style="display:none">
<div>Header</div>
</htmlpageheader>
<htmlpagefooter name="Footer" style="display:none">
<div>Footer</div>
</htmlpagefooter>
<div class="page_first">Page 1</div>
<div class="noheader">Page 2</div>
<div class="noheader">Page 3</div>
<div class="noheader">Page 4</div>
<div class="page_last">Page 5</div>
</body>
</html>';
$mpdf->WriteHTML($html);
$mpdf->Output();
}
OR
I'm assuming you're displaying all your data directly into the table, you can use like this :
(note : mpdf can't detect the last attribute it can only detect the first attribute (:first), so we trick it )
public function pdf_02()
{
$mpdf = new \Mpdf\Mpdf();
$data = [
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
['Data A', 'Data B', 'Data C', 'Data D', 'Data E'],
];
$collection = collect( $data );
// you can change data per page to chunck
$per_page = 15;
$chunks = $collection->chunk( $per_page );
$table = '';
foreach ($chunks as $key1 => $value1) {
if ( $key1 == 0 )
{
$class = 'page_first';
} else if ( $key1 == count( $chunks ) - 1 )
{
$class = 'page_last';
} else
{
$class = 'noheader';
}
$table .= '
<div class="' . $class . '">
<table border="1" cellspacing="0" cellpadding="10" width="100%">
<thead>
<tr>
<th>Title 1</th>
<th>Title 2</th>
<th>Title 3</th>
<th>Title 4</th>
<th>Title 4</th>
</tr>
</thead>
<tbody>';
foreach ($value1 as $key2 => $value2) {
$table .= '
<tr>
<td>' . $value2[0] . '</td>
<td>' . $value2[1] . '</td>
<td>' . $value2[2] . '</td>
<td>' . $value2[3] . '</td>
<td>' . $value2[4] . '</td>
</tr>
';
}
$table .= '
</tbody>
</table>
</div>
';
}
$html = '
<html>
<head>
<style>
@page {
size: auto;
header: _blank;
footer: _blank;
}
@page page_first {
header: html_Header;
footer: _blank;
}
@page page_last {
header: _blank;
footer: html_Footer;
}
@page noheader {
header: _blank;
footer: _blank;
}
div.page_first {
page-break-before: right;
page: page_first;
}
div.page_last {
page-break-before: right;
page: page_last;
}
div.noheader {
page-break-before: right;
page: noheader;
}
</style>
</head>
<body>
<htmlpageheader name="Header" style="display:none">
<div>Header</div>
</htmlpageheader>
<htmlpagefooter name="Footer" style="display:none">
<div>Footer</div>
</htmlpagefooter>
' . $table . '
</body>
</html>';
$mpdf->WriteHTML($html);
$mpdf->Output();
}