Создание 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. Удачного кодирования!