Как я могу получить общее количество страниц в DOMPDF? - PullRequest
7 голосов
/ 30 марта 2011

Например Page 1 of 5.

Есть пример онлайн того, как получить Page 1 часть, но не of 5 часть. Вот оно:

.pagenum:before { content: "Page " counter(page); }

Я использую версию 0.6, $PAGE_NUM и $PAGE_COUNT не работают.

Ответы [ 8 ]

9 голосов
/ 20 января 2017

Для людей, приезжающих сюда с использованием новой версии DomPdf

С dompdf 0.7.0, dompdf_config.inc.php файл был удален (и на него больше не ссылаются): все параметры dompdf должны быть установлены во время выполнения.

Это означает, что вам нужно создать новый экземпляр Options class

$domPdfOptions = new Options();

И затем вы можете включить встроенный PHP, используя следующую строку

$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

9 голосов
/ 30 марта 2011

По умолчанию встроенный PHP отключен по соображениям безопасности, вам нужно включить его самостоятельно в dompdf_config.custom.inc.php.См. здесь .

. На данный момент общее количество страниц не поддерживается используемым CSS, однако мы планируем сделать так, чтобы оно работало в 0,6 финальной версии.

4 голосов
/ 25 февраля 2013

Убедитесь, что вы включили 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);
        } 
    ');
}

В конце этой страницы

0 голосов
/ 27 мая 2016

Я не знаю, какой контент вы хотите визуализировать. Я получил кучу картинок и максимальную константу картинок на сайте.

Итак, функция дает мне номер сайта (всего / макс.), А затем я получил все, что мне нужно, чтобы начать создавать PDF.

@for ($i = 1;$i <= $pages; $i++)
@if ($i !== 1) 
   <div style="page-break-before: always;"></div>
@endif
   #Code for each Site
@end

То, как я разделяю свои сайты и их, я также получил $ страниц в качестве переменной блейда.

<div class="info_footer">
     Page <span class="pagenum"></span> / {{$pages}}
</div>

С таблицей стилей:

.pagenum:before { content: counter(page); }
0 голосов
/ 27 августа 2015

Привет, это полный код 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);
?>

Проверьте с помощью простого файла, затем поместите весь соответствующий код с помощью запросов и т.д ... и т. Д.

0 голосов
/ 24 августа 2011

См. Вложение с именем Issue121.php в этом отчете об ошибках.Работал на меня.Насколько я понимаю, вы не можете повторить номер страницы, но вы можете нарисовать его где-нибудь.

http://code.google.com/p/dompdf/issues/detail?id=121

0 голосов
/ 30 марта 2011

В php вы можете получить доступ к переменным dompdf:

$PAGE_NUM       the current page number
$PAGE_COUNT     the total number of pages in the document 

Подробнее http://code.google.com/p/dompdf/wiki/Usage

0 голосов
/ 30 марта 2011

$PAGE_COUNT - общее количество страниц.

Пример

<script type="text/php">
if (isset($pdf) ) {
    echo $PAGE_COUNT;
}
</script>

Документация

Обновление

Есливы используете старую версию, где это не поддерживается, обновите.В противном случае вам может не повезти.

...