Улучшение генерации PDF-файлов в Laravel с помощью barryvdh/laravel-dompdf: как повторять нижний колонтитул на каждой странице

Создание PDF-файлов — обычное требование в веб-приложениях, и Laravel предоставляет различные пакеты для упрощения этой задачи. Одним из популярных пакетов является barryvdh/laravel-dompdf, который интегрирует библиотеку Dompdf в Laravel. В этой статье мы рассмотрим, как повторять нижний колонтитул на каждой странице при создании PDF-файлов с помощью barryvdh/laravel-dompdf в Laravel.

Метод 1: использование CSS для макета страницы
Один из способов повторить нижний колонтитул на каждой странице — использовать CSS для макета страницы. Вы можете определить фиксированное положение нижнего колонтитула и соответствующим образом настроить поля содержимого. Вот пример:

// Define the view for generating the PDF
public function generatePDF()
{
    $pdf = \PDF::loadView('pdf.template');
    // Set the CSS to repeat the footer on every page
    $pdf->setOptions(['isPhpEnabled' => true]);
    $pdf->setOptions(['dpi' => 150]);
    $pdf->setOptions(['defaultFont' => 'Arial']);
    return $pdf->stream('document.pdf');
}
<!-- pdf/template.blade.php -->
<style>
    @page {
        margin-bottom: 50px;
    }
    .footer {
        position: fixed;
        bottom: 0;
        width: 100%;
        text-align: center;
    }
</style>
<div class="content">
    <!-- PDF content here -->
</div>
<div class="footer">
    <!-- Footer content here -->
</div>

Метод 2: использование параметров Dompdf
Другой подход — использовать параметры, предоставляемые самим Dompdf. Вы можете установить для параметра DOMPDF_ENABLE_PHPзначение true и использовать код PHP в представлении, чтобы повторять нижний колонтитул на каждой странице. Вот пример:

// Define the view for generating the PDF
public function generatePDF()
{
    $pdf = \PDF::loadView('pdf.template');
    // Set the Dompdf options to repeat the footer on every page
    $pdf->setOptions(['isPhpEnabled' => true]);
    $pdf->setOptions(['dpi' => 150]);
    $pdf->setOptions(['defaultFont' => 'Arial']);
    $pdf->setOptions(['DOMPDF_ENABLE_PHP' => true]);
    return $pdf->stream('document.pdf');
}
<!-- pdf/template.blade.php -->
<div class="content">
    <!-- PDF content here -->
</div>
<?php
    $pdf = \PDF::getDomPDF();
    $pdf->get_canvas()->page_text(500, 780, "Page {PAGE_NUM}", null, 10, array(0, 0, 0));
?>
<div class="footer">
    <!-- Footer content here -->
</div>

Создание PDF-файлов с помощью Laravel упрощается благодаря использованию таких пакетов, как barryvdh/laravel-dompdf. Используя параметры CSS или Dompdf, вы можете гарантировать, что нижний колонтитул повторяется на каждой странице созданного PDF-файла. Выберите метод, который соответствует вашим потребностям, и внедрите его в свое приложение Laravel, чтобы улучшить процесс создания PDF-файлов.

Не забудьте оптимизировать свои PDF-файлы для SEO, добавив соответствующие метаданные, такие как заголовки, описания и ключевые слова. Это улучшит видимость ваших PDF-файлов в результатах поисковых систем, что приведет к увеличению органического трафика и доступности вашего контента.