This is an example of a PDF document generated using Laravel and DomPDF.
Создание PDF-документов — распространенное требование в веб-приложениях, особенно для создания счетов, квитанций, сертификатов, билетов и различных отчетов. В этом подробном руководстве мы углубимся в использование Laravel и DomPDF для создания PDF-документов с изображениями и CSS. Мы рассмотрим параметры конфигурации, особенности проектирования, размер вывода, производительность и запросы к базе данных. Кроме того, мы обсудим советы и рекомендации по обработке разрывов страниц, загрузке изображений с использованием base64 и многому другому.
Прежде чем мы начнем, убедитесь, что у вас установлено следующее:
DomPDF — это популярная PHP-библиотека, которая позволяет создавать PDF-документы из содержимого HTML. Он поддерживает стили CSS, изображения и различные параметры конфигурации. Интегрировав DomPDF с Laravel, вы можете легко создавать сложные PDF-документы, используя шаблоны Blade и мощные функции Laravel.
Другие популярные библиотеки PDF включают TCPDF, FPDF и Snappy.
Однако DomPDF широко используется благодаря простоте интеграции и надежному набору функций.
В этом руководстве мы рассмотрим процесс настройки проекта Laravel, настройки DomPDF, создания контроллера для обработки создания PDF-файлов, разработки шаблона Blade для содержимого PDF, добавления маршрутов и оптимизации производительности. Мы также обсудим расширенные параметры конфигурации и дадим советы и рекомендации по созданию высококачественных PDF-документов.
В этом руководстве предполагается, что у вас есть базовые знания Laravel и PHP. Если вы новичок в Laravel, рассмотрите возможность просмотреть официальную документацию Laravel, чтобы ознакомиться с инфраструктурой. В противном случае вы можете пройти курс Laravel Bootcamp, чтобы начать работу с Laravel.
Сначала создайте новый проект Laravel, если у вас его еще нет, или используйте существующий проект. Конечно, вы можете пропустить этот шаг, если у вас уже есть проект Laravel.
composer create-project --prefer-dist laravel/laravel pdf-tutorial cd pdf-tutorial
Далее установите DomPDF:
composer require barryvdh/laravel-dompdf
Опубликуйте файл конфигурации:
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
Откройте файл config/dompdf.php. Файл конфигурации содержит различные параметры для настройки вывода PDF. Здесь вы можете установить различные параметры, включая размер бумаги по умолчанию, ориентацию, шрифт и многое другое.
'default_paper_size' => 'a4',
'orientation' => 'portrait',
'default_font' => 'serif',
Создайте контроллер для создания PDF-файлов:
php artisan make:controller PDFController
В app/Http/Controllers/PDFController.php добавьте следующий код:
'Laravel PDF Example', 'date' => date('m/d/Y'), ]; $pdf = PDF::loadView('myPDF', $data); return $pdf->download('document.pdf'); } }
Создайте шаблон Blade для содержимого PDF:
touch resources/views/myPDF.blade.php
Добавьте в myPDF.blade.php следующее содержимое:
Laravel PDF Example {{ $title }}
Date: {{ $date }}
This is an example of a PDF document generated using Laravel and DomPDF.
Добавьте маршруты для обработки создания PDF-файлов в маршрутах/web.php:
use App\Http\Controllers\PDFController; Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Вы можете добавлять изображения в PDF-файл, встраивая их в виде строк в кодировке Base64 или используя URL-адреса.
Изображения можно встраивать непосредственно в шаблон Blade с использованием кодировки base64. Например, чтобы встроить изображение из паблика/images, вы можете сделать это следующим образом:
Или напрямую с URL-адреса:
При работе с большими наборами данных (например, 1000 записей) используйте нумерацию страниц или фрагментирование для управления использованием памяти:
$data = DB::table('users')->paginate(50); $pdf = PDF::loadView('myPDF', ['data' => $data]);
Чтобы уменьшить размер вывода, сведите к минимуму использование тяжелых изображений и по возможности выбирайте векторную графику. Также используйте эффективный CSS.
Убедитесь, что контент хорошо структурирован с учетом разрывов страниц. Используйте CSS для обработки разрывов страниц:
.page-break { page-break-after: always; }
И в вашем шаблоне Blade:
Более сложные настройки см. в документации DomPDF. Вы можете настроить практически все: от полей до способа загрузки шрифтов.
Чтобы использовать пользовательские шрифты, сначала добавьте их в свой проект и настройте DomPDF на их использование:
'custom_font_dir' => base_path('resources/fonts/'), 'custom_font_data' => [ 'custom-font' => [ 'R' => 'CustomFont-Regular.ttf', 'B' => 'CustomFont-Bold.ttf', ] ],
В вашем шаблоне Blade:
Следуя этому пошаговому руководству, вы сможете создавать сложные PDF-документы с помощью Laravel и DomPDF, дополненные изображениями и стилями CSS. В этом руководстве рассмотрены основные параметры конфигурации, особенности проектирования и оптимизация производительности. Вы можете расширить эту основу, чтобы создать надежную систему создания документов для вашего приложения Laravel.
Это руководство является частью серии по созданию PDF-файлов с помощью Laravel. Полный репозиторий с различными шаблонами документов (счета-фактуры, квитанции, сертификаты, билеты и т. д.) можно найти здесь. Не стесняйтесь вносить свой вклад и расширять коллекцию.
Удачного программирования!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3