I'm using dompdf 0.7.0 and try to write down text in PHP on my pdf after rendering. I need text on specific pages and found the following from Answer from Brian DomPDF {PAGE_NUM} not on first page
The function page_script sound like the correct answer. I could check if loop is currently on page 3 or whatever.
Does I have to enable any options for this function?
Example:
$dompdf = new Dompdf( $options );
$dompdf->set_option('default_font', 'open sans');
$dompdf->set_option('fontHeightRatio', 1);
$dompdf->setPaper('A4')
$dompdf->set_option('enable_html5_parser', true);
$dompdf->set_option('enable_php', true);
$dompdf->loadHtml( $html );
$dompdf->render();
$canvas = $dompdf->get_canvas();
$canvas->page_script('
if ($PAGE_NUM > 1) {
$current_page = $PAGE_NUM-1;
$total_pages = $PAGE_COUNT-1;
$canvas->text(0, 0, "$current_page / $total_pages", "open sans condensed", 10, array(0,0,0));
}
');
It still be shown on my first page.
$canvas
wouldn't be available from the page script as it is out of scope. The canvas object can be referenced inside your page script as$pdf
.Try the following
page_script
call instead:There are a few variables available from within page scripts or embedded script:
$PAGE_NUM
: current page number$PAGE_COUNT
: total number of pages$pdf
: the canvas object$fontMetrics
: an instance of the FontMetrics classIf you're using page text you have access to the following template variables:
{PAGE_NUM}
: current page number{PAGE_COUNT}
: total number of pagesNote: Support for parsing embedded script or page scripts is disabled by default. Enable it with the following command:
$dompdf->set_option("isPhpEnabled", true);
. This must be done prior to calling$dompdf->render();
.