Я использую dompdf 0.7.0 и пытаюсь записать текст в PHP на моем pdf после рендеринга. Мне нужен текст на конкретных страницах и нашел следующее из ответа от Brian DomPDF {PAGE_NUM} не на первой странице
Функция page_script звучит как правильный ответ. Я мог бы проверить, находится ли цикл в настоящее время на странице 3 или что-то еще.
Должен ли я включать любые опции для этой функции?
Пример:
$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)); } ');
Это все еще будет показано на моей первой странице.
$canvas
не будет доступен из скрипта страницы, поскольку он выходит за рамки. Объект canvas можно ссылаться внутри вашего скрипта страницы как $pdf
.
page_script
этого попробуйте page_script
следующий вызов page_script
:
$canvas->page_script(' if ($PAGE_NUM > 1) { $current_page = $PAGE_NUM-1; $total_pages = $PAGE_COUNT-1; $font = $fontMetrics->getFont("open sans condensed", "normal"); // or bold, italic, or bold_italic $pdf->text(0, 0, "$current_page / $total_pages", $font, 10, array(0,0,0)); } };
Внутри скриптов страниц или встроенного скрипта имеется несколько переменных:
$PAGE_NUM
: номер текущей страницы $PAGE_COUNT
: общее количество страниц $pdf
: объект холста $fontMetrics
: экземпляр класса FontMetrics Если вы используете текст страницы, у вас есть доступ к следующим переменным шаблона:
{PAGE_NUM}
: номер текущей страницы {PAGE_COUNT}
: общее количество страниц Примечание. Поддержка разбора встроенных сценариев или скриптов страниц по умолчанию отключена. Включите его с помощью следующей команды: $dompdf->set_option("isPhpEnabled", true);
, Это необходимо сделать до вызова $dompdf->render();
,