Как получить общее количество страниц в DOMPDF?
Page 1 of 5
.
здесь пример онлайн о том, как получить teh Page 1
, но не of 5
часть. Вот оно:
.pagenum:before { content: "Page " counter(page); }
Я использую версию 0.6 и $PAGE_NUM
и $PAGE_COUNT
не работает.
8 ответов
по умолчанию встроенный PHP отключен по соображениям безопасности, вам нужно включить его самостоятельно в dompdf_config.традиция.Инк.РНР. См.здесь.
на данный момент общее количество страниц не поддерживается с помощью CSS, который вы используете, мы планируем заставить его работать в 0.6 final.
для людей, приезжающих сюда, используя новую версию DomPdf
С
dompdf
0.7.0
наdompdf_config.inc.php
файл был удален (и больше не ссылается): все параметры dompdf должны быть установлены во время выполнения.
это означает, что вы должны создать новый экземпляр Options
класс
$domPdfOptions = new Options();
и затем вы можете включить PHP inline, используя следующую строку
$domPdfOptions->set("isPhpEnabled", true);
остальные коды верны и будут показывать номер страницы и количество страниц
<script type="text/php">
if (isset($pdf))
{
$x = 72;
$y = 18;
$text = "{PAGE_NUM} of {PAGE_COUNT}";
$font = $fontMetrics->get_font("helvetica", "bold");
$size = 6;
$color = array(255,0,0);
$word_space = 0.0; // default
$char_space = 0.0; // default
$angle = 0.0; // default
$pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
}
</script>
обновление Как отметил @london-smith, Это также работает для DomPDF 0.8.1
проверить включена inline_pdf в dompdf.
используйте этот код, вы можете поместить, где хотите, он получает высоту и ширину документа и помещает страницу/total_pages в правом нижнем углу.
<script type = "text/php">
if ( isset($pdf) ) {
$pdf->page_script('
if ($PAGE_COUNT > 1) {
$font = Font_Metrics::get_font("Arial, Helvetica, sans-serif", "normal");
$size = 12;
$pageText = $PAGE_NUM . "/" . $PAGE_COUNT;
$y = $pdf->get_height() - 24;
$x = $pdf->get_width() - 15 - Font_Metrics::get_text_width($pageText, $font, $size);
$pdf->text($x, $y, $pageText, $font, $size);
}
');
}
в php вы можете получить доступ к переменным dompdf:
$PAGE_NUM the current page number
$PAGE_COUNT the total number of pages in the document
$PAGE_COUNT
- общее количество страниц.
пример
<script type="text/php">
if (isset($pdf) ) {
echo $PAGE_COUNT;
}
</script>
обновление
Если вы используете старую версию, где это не поддерживается, обновления. Иначе вам может не повезти.
см. вложение с именем issue121.php в этом отчете об ошибке. Работать на меня. Насколько я понимаю, вы не можете повторить номер страницы, но вы можете нарисовать его где-то.
Привет это полный код mi... ведь HTML поставил это..
<?
require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$canvas = $dompdf->get_canvas();
$font = Font_Metrics::get_font("helvetica", "bold");
$canvas->page_text(512, 10, "Página: {PAGE_NUM} de {PAGE_COUNT}",$font, 8, array(0,0,0));
$filename = "yourNameConvention".date("Y-m-d").'.pdf';
$dompdf->stream($filename);
?>
тест с простым файлом, затем поместите весь соответствующий код с запросами и т. д.. так далее..
Я не знаю, какой контент вы хотите представить. Я получил кучу фотографий и максимальную константу изображений на сайте.
поэтому функция дает мне номер сайта (total/max), а затем я получил все, что мне нужно, чтобы начать создавать pdf.
@for ($i = 1;$i <= $pages; $i++)
@if ($i !== 1)
<div style="page-break-before: always;"></div>
@endif
#Code for each Site
@end
вот как я отделяю свои сайты и их я также получил $pages в качестве переменной blade.
<div class="info_footer">
Page <span class="pagenum"></span> / {{$pages}}
</div>
В Таблице Стилей:
.pagenum:before { content: counter(page); }