Example 24
Description
A header and footer can be defined. Their height will reduce the printable height of the body.
The header here in the example contains a small image on the left side and some text on the right side. It has a grey background and a green line at the bottom of it.
The footer has a black line at the top and below that the page number and the total number of pages are printed.
A manual page break is added to show the repetition of the header and footer
Output
<?php include_once "../src/Report.php"; use Adi\ReportLib as ReportLib; // Create report instance // default format A4, portrait with margins left = 20mm, top = 10mm, right = 10mm and bottom = 10mm $report = new ReportLib\Report(); $report->setCountPages(true); // Get ref to the report body $body = $report->getBody(); $header = $report->getHeader(); $footer = $report->getFooter(); addHeader($header); addFooter($footer); $body->AddPageBreak(); // Produce the output of the report // uses the same params as TCPDF (F = File, I = Preview etc.) $report->output(__DIR__ . "/example_024.pdf", 'I'); function addHeader(ReportLib\SerialFrame $header) : void { $tsBold = ReportLib\TextStyles::getTextStyle(ReportLib\TextStyles::BOLD); $vc = $header->AddVContainer(); $vc->setMarginBottom(5.0); $box = $vc->AddBox(); $box->setUseFullWidth(true); $box->setPadding(1.0); $box->setHeight(15.0); $box->setBackground("#EEEEEE"); $hc = $box->AddHContainer(); $hc->setUseFullWidth(true); $hc->setUseFullHeight(true); $if = $hc->AddImage("image.jpg", true, 0.0, 10.0); $if->setVAlignment('M'); $tf = $hc->AddText("Fancy report\nwith a header and a footer", $tsBold); $tf->setHAlignment('R'); $tf->setVAlignment('T'); $bf = $vc->AddHLine(0.3,"#00FF00"); } function addFooter(ReportLib\SerialFrame $footer) : void { $tsNormal = ReportLib\TextStyles::getTextStyle(ReportLib\TextStyles::NORMAL); $vc = $footer->AddVContainer(); $vc->setMarginTop(5.0); $lf = $vc->AddHLine(0.3); $box = $vc->AddBox(); $box->setUseFullWidth(true); $box->setHeight(10.0); $tf = $box->AddText("Page [VAR_PAGE] of [VAR_TOTAL_PAGES]", $tsNormal); $tf->setHAlignment('R'); $tf->setVAlignment('T'); }