TCPDF-NextThư viện PHP PDF hiện đại.
Xây dựng lại cho thời đại mới. PDF 2.0 · PAdES B-LTA · PDF/A-4 · PHP 8.5+ · Laravel 12
Hỗ trợ ISO 32000-2:2020 ngay từ đầu. Cross-reference stream, chỉ AES-256, XMP metadata. Không có mã cũ.
Vòng đời chữ ký số đầy đủ — từ B-B (Core) đến B-LTA (Pro) với LTV, OCSP, CRL và timestamp RFC 3161.
Tuân thủ ISO 19005-4:2020 — XMP metadata, ICC output intent, nhúng font, kiểm tra không gian màu.
AESV3 Revision 6 với chuẩn hóa mật khẩu SASLprep (RFC 4013). Không dùng RC4 cũ hay khóa 40-bit.
Tự động phát hiện ServiceProvider, Pdf Facade, tạo PDF bất đồng bộ qua queue, tương thích Octane, HTTP response helper.
220+ file mã nguồn trong 7 package. Core + Artisan + Pro + Laravel + Symfony + CodeIgniter + Adaptation.
Chưa biết cần package nào? Trình hướng dẫn tương tác sẽ phân tích môi trường của bạn và đề xuất tổ hợp lý tưởng.
TCPDF-Next không phải là một thư viện đơn lẻ — mà là hệ sinh thái gồm 7 package được thiết kế để hoạt động cùng nhau.
| Package | Composer | Mô tả |
|---|---|---|
| Core | yeeefang/tcpdf-next | Tạo PDF 2.0, typography, barcode, mã hóa, PAdES B-B |
| Artisan | yeeefang/tcpdf-next-artisan | Chrome CDP HTML-to-PDF — hiển thị chính xác HTML/CSS3 |
| Pro | yeeefang/tcpdf-next-pro | PAdES B-T~B-LTA, PDF/A-4, HSM signing, barcode chuyên dụng |
| Package | Composer | Mô tả |
|---|---|---|
| Laravel | yeeefang/tcpdf-next-laravel | Laravel 12 — Facade, Queue, tương thích Octane |
| Symfony | yeeefang/tcpdf-next-symfony | Symfony 7 — Bundle, PdfFactory, Messenger |
| CodeIgniter | yeeefang/tcpdf-next-codeigniter | CodeIgniter 4 — Services, Library, Queue |
| Package | Composer | Mô tả |
|---|---|---|
| Adaptation | yeeefang/tcpdf-next-adaptation | Adapter tương thích ngược TCPDF 6.2.13 — di chuyển dễ dàng |
5 dòng code để tạo 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');Với 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 gốc | TCPDF-Next | |
|---|---|---|---|
| Phiên bản PHP | 5.x – 8.x | 8.5+ only | |
| Chuẩn PDF | 1.4 – 1.7 | 2.0 (ISO 32000-2:2020) | |
| Kiến trúc | Class đơn ~30K dòng | 220+ file, 15 module, 12 composable trait | |
| An toàn kiểu | Không | PHPStan Level 10, backed enum, readonly class | |
| Chữ ký số | PKCS#7 cơ bản | PAdES B-B (Core) → B-LTA (Pro) | |
| Lưu trữ | PDF/A-1b (một phần) | PDF/A-4 (ISO 19005-4:2020) | |
| Render HTML | Built-in (CSS hạn chế) | Built-in + Chrome CDP (CSS3 đầy đủ) | |
| Testing | ~50 test | 1,004 test, 29,586 assertion | |
| Mở rộng | Kế thừa monolith | Hệ sinh thái module (7 package) + extension API | |
| Framework | Không | Laravel 12, Symfony 7, CodeIgniter 4 |
| Tiêu chuẩn | Phạm vi | Package |
|---|---|---|
| ISO 32000-2:2020 | PDF 2.0 — đầy đủ | 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 (client trong Core, doc-timestamp trong 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 (polychromatic) | Pro |