Создание 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-файлов в результатах поисковых систем, что приведет к увеличению органического трафика и доступности вашего контента.