TCPDF-NextСовременная PHP PDF библиотека.
Переосмыслена для новой эры. PDF 2.0 · PAdES B-LTA · PDF/A-4 · PHP 8.5+ · Laravel 12
ISO 32000-2:2020 с первого дня. Cross-reference streams, только AES-256, метаданные XMP. Без legacy-багажа.
Полный жизненный цикл цифровой подписи — B-B (Core) до B-LTA (Pro) с LTV, OCSP, CRL и метками времени RFC 3161.
Соответствие ISO 19005-4:2020 — метаданные XMP, ICC output intents, встраивание шрифтов, валидация цветовых пространств.
AESV3 Revision 6 с нормализацией паролей SASLprep (RFC 4013). Без legacy RC4 или 40-битных ключей.
Автообнаружение ServiceProvider, Pdf Facade, асинхронная генерация через очереди, Octane-safe, HTTP response helpers.
220+ исходных файлов в 7 пакетах. Core + Artisan + Pro + Laravel + Symfony + CodeIgniter + Adaptation.
Не уверены, какие пакеты вам нужны? Наш интерактивный мастер проанализирует ваше окружение и порекомендует идеальную комбинацию.
TCPDF-Next — это не отдельная библиотека, а модульная экосистема из 7 пакетов, спроектированных для совместной работы.
| Пакет | Composer | Описание |
|---|---|---|
| Core | yeeefang/tcpdf-next | Генерация PDF 2.0, типографика, штрихкоды, шифрование, PAdES B-B |
| Artisan | yeeefang/tcpdf-next-artisan | Chrome CDP HTML-в-PDF — пиксельная точность HTML/CSS3 |
| Pro | yeeefang/tcpdf-next-pro | PAdES B-T~B-LTA, PDF/A-4, HSM-подписание, специальные штрихкоды |
| Пакет | Composer | Описание |
|---|---|---|
| Laravel | yeeefang/tcpdf-next-laravel | Laravel 12 — Facade, Queue, Octane-совместимый |
| Symfony | yeeefang/tcpdf-next-symfony | Symfony 7 — Bundle, PdfFactory, Messenger |
| CodeIgniter | yeeefang/tcpdf-next-codeigniter | CodeIgniter 4 — Services, Library, Queue |
| Пакет | Composer | Описание |
|---|---|---|
| Adaptation | yeeefang/tcpdf-next-adaptation | Обратно совместимый адаптер TCPDF 6.2.13 — миграция без изменения кода |
5 строк кода для генерации PDF:
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::createStandalone()
->setTitle('My First PDF')
->addPage()
->setFont('Helvetica', '', 14)
->cell(0, 10, 'Hello, PDF 2.0!')
->save('hello.pdf');С Laravel:
use Yeeefang\TcpdfNext\Laravel\Facades\Pdf;
use Yeeefang\TcpdfNext\Laravel\Http\PdfResponse;
$pdf = Pdf::createStandalone()
->setTitle("Invoice #{$invoice->number}")
->addPage()
->setFont('Helvetica', '', 12)
->cell(0, 10, "Invoice #{$invoice->number}");
return PdfResponse::inline($pdf, "invoice-{$invoice->number}.pdf");| Feature | Оригинальный TCPDF | TCPDF-Next | |
|---|---|---|---|
| Версия PHP | 5.x – 8.x | 8.5+ only | |
| Спецификация PDF | 1.4 – 1.7 | 2.0 (ISO 32000-2:2020) | |
| Архитектура | Один класс ~30K строк | 220+ файлов, 15 модулей, 12 компонуемых trait-ов | |
| Типобезопасность | Отсутствует | PHPStan Level 10, backed enum-ы, readonly-классы | |
| Подписи | Базовый PKCS#7 | PAdES B-B (Core) → B-LTA (Pro) | |
| Архивирование | PDF/A-1b (частично) | PDF/A-4 (ISO 19005-4:2020) | |
| HTML-рендеринг | Встроенный (ограниченный CSS) | Встроенный + Chrome CDP (полный CSS3) | |
| Тестирование | ~50 тестов | 1,004 теста, 29,586 проверок | |
| Расширяемость | Наследование монолита | Модульная экосистема (7 пакетов) + API расширений | |
| Фреймворки | Отсутствует | Laravel 12, Symfony 7, CodeIgniter 4 |
| Стандарт | Покрытие | Пакет |
|---|---|---|
| ISO 32000-2:2020 | PDF 2.0 — полное | Core |
| ISO 19005-4:2020 | PDF/A-4, 4e, 4f | Pro |
| ETSI EN 319 142-1 | PAdES B-B | Core |
| ETSI EN 319 142-1 | PAdES B-T ~ B-LTA | Pro |
| RFC 3161 | TSP (клиент в Core, метка времени документа в Pro) | Core + Pro |
| RFC 5652 | CMS (PKCS#7) | Core |
| RFC 6960 | OCSP | Pro |
| RFC 5280 | X.509 / CRL | Pro |
| RFC 4013 | SASLprep | Core |
| ISO 18004 | QR Code (v1-40, ECI, Kanji) | Core |
| ISO 16022 | DataMatrix (+ DMRE) | Core |
| ISO 15438 | PDF417 | Core |
| ISO 18004 Annex | Micro QR (M1-M4) | Pro |
| ISO 24723 | DotCode | Pro |
| ISO 20830 | HanXin | Pro |
| ISO 23634 | JAB Code (полихроматический) | Pro |