Создание PDF-файлов в Laravel — обычная задача для многих веб-приложений. Будь то счета, отчеты или другие типы документов, возможность создания PDF-файлов может быть полезной функцией для ваших пользователей. В этом уроке мы покажем вам, как создавать PDF-файлы в Laravel 9 с использованием пакета laravel-dompdf
.
Шаг 1. Установите DomPDF
Первое, что вам нужно сделать, это добавить пакет DomPDF в ваше приложение laravel. Вы можете сделать это, выполнив следующую команду в Composer:
composer require barryvdh/laravel-dompdf
Шаг 2. Зарегистрируйте поставщика услуг
После установки пакета вам необходимо зарегистрировать поставщика услуг в файле config/app.php
. Вы можете сделать это, добавив следующую строку в массив providers
:
'providers' => [ // ... Barryvdh\DomPDF\ServiceProvider::class, ],
Далее мы добавим псевдоним пакета в массив aliases
в том же файле:
'aliases' => [ // ... 'PDF' => Barryvdh\DomPDF\Facade::class, ],
Шаг 3. Создайте маршрут
Затем вам нужно создать маршрут, который будет обрабатывать генерацию PDF. В этом примере мы создадим маршрут, который создает PDF-файл из представления HTML.
Route::get('/pdf', function () { $pdf = PDF::loadView('invoice', $data); return $pdf->download('invoice.pdf'); });
Приведенный выше код возьмет вид и данные invoice
и сгенерирует PDF-файл, который пользователь сможет загрузить. Метод загрузки используется, чтобы предложить пользователю загрузить файл.
Шаг 4. Создайте представление
Теперь вам нужно создать представление HTML, которое будет использоваться в качестве шаблона для PDF. Вы можете сделать это, создав в папке resources/views
новый файл с именем invoice.blade.php
. Этот файл может содержать любые HTML и CSS, которые вы хотите включить в PDF.
Шаг 5. Настройка и стиль PDF-файла
Вы можете настроить PDF, отредактировав файл представления, или вы можете использовать файл css отдельно. Вы можете использовать следующий код, чтобы включить файл css в pdf.
$pdf = PDF::loadView('invoice')->setPaper('a4', 'portrait')->setWarnings(false); return $pdf->download('invoice.pdf');
Шаг 6. Загрузите или сохраните PDF-файл
Наконец, вы можете использовать метод download
, чтобы предложить пользователю загрузить PDF-файл, или использовать метод save
, чтобы сохранить его в определенном месте на вашем сервере.
Route::get('/pdf', function () { $pdf = PDF::loadView('invoice', $data); return $pdf->save('/path-to/my_stored_file.pdf')->stream('invoice.pdf'); //return $pdf->download('invoice.pdf'); });
В заключение, создание PDF-файлов в Laravel 9 — простая задача, которую можно выполнить с помощью пакета laravel-dompdf
. Следуя шагам, описанным в этом руководстве, вы сможете легко создавать PDF-файлы для своего веб-приложения. Это может быть отличной функцией для создания счетов, отчетов и других типов документов с дополнительным преимуществом SEO-оптимизации.
Я надеюсь, что это руководство помогло вам понять, как использовать DomPDF для создания PDF-файлов в Laravel 9. Удачного кодирования!