Spatie's Laravel PDF v2 переходить на Driver-Based Architecture

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 11 лютого, 2026
Spatie laravel-pdf v2 додає драйверну архітектуру (Browsershot, Cloudflare, DomPdf і Gotenberg), відкладену генерацію в черзі та підтримку метаданих для гнучкішої роботи з PDF у Laravel. Хочете дізнатися про нові можливості й важливі кроки при оновленні?

Spatie's laravel-pdf v2 переходить на драйверну архітектуру для генерації PDF — тепер можна обирати між Browsershot, Cloudflare Browser Rendering, DomPdf і, починаючи з v2.1.0, Gotenberg. У релізі також додано генерацію PDF у черзі, підтримку метаданих, переключення драйверів під час виконання та можливість створювати власні драйвери.

# Що нового

# Архітектура на основі драйверів

Найбільша зміна у v2 — перехід на систему драйверів. Замість прив'язки до Browsershot тепер можна вибрати бекенд, який підходить під вашу інфраструктуру:

Встановіть драйвер за замовчуванням у файлі конфігурації або переключайте під час виконання:

use Spatie\LaravelPdf\Facades\Pdf;
 
Pdf::view('pdfs.invoice', ['invoice' => $invoice])
    ->driver('dompdf')
    ->format('a4')
    ->save('invoice.pdf');

Також можна реалізувати власні драйвери для бекендів, які пакет не поставляє.

# Драйвер Gotenberg (v2.1.0)

Наступного дня після релізу v2 у v2.1.0 додали вбудований драйвер Gotenberg. Gotenberg — це Docker‑API для конвертації HTML у PDF із використанням headless Chromium. Драйвер відправляє HTML як multipart form‑data на endpoint конвертації Gotenberg і підтримує всі стандартні опції PDF: розмір паперу, поля, орієнтацію, масштаб, діапазони сторінок, header і footer. Використовує вбудований Http facade Laravel, тож додаткові залежності Composer не потрібні.

PR: #302

# Генерація PDF у черзі

Генерацію PDF тепер можна відправляти в чергу через saveQueued(). До виклику можна приєднати callback, що виконається після збереження — наприклад, надіслати лист із згенерованим файлом:

use Spatie\LaravelPdf\Facades\Pdf;
 
Pdf::view('pdfs.invoice', ['invoice' => $invoice])
    ->format('a4')
    ->saveQueued('invoice.pdf')
    ->then(fn (string $path, ?string $diskName) =>
        Mail::to($user)->send(new InvoiceMail($path))
    );

Метод також приймає опційні параметри $connection і $queue.

# Метадані PDF

У v2 з'явився метод meta() для встановлення метаданих документа PDF:

use Spatie\LaravelPdf\Facades\Pdf;
 
Pdf::view('pdfs.invoice', ['invoice' => $invoice])
    ->meta(
        title: 'Invoice #1234',
        author: 'Acme Corp',
        subject: 'Monthly Invoice',
        keywords: 'invoice, billing',
        creator: 'Laravel PDF',
        creationDate: now(),
    )
    ->save('invoice.pdf');

Деталі форматування PDF дивіться в документації.

Зауваги щодо оновлення

Це мажорне оновлення з несумісними змінами:

Посилання

Популярні

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

Logomark Logotype

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!