Skip to content

Filosofi Desain

TCPDF-Next terinspirasi dari TCPDF tetapi merupakan penulisan ulang total dari nol untuk era PHP modern. Ini bukan fork, bukan upgrade inkremental — ini adalah library yang sepenuhnya baru yang dibangun di atas arsitektur generasi berikutnya.

TCPDF asli melayani komunitas PHP dengan baik selama lebih dari satu dekade. Tetapi arsitektur file-tunggal 30.000 barisnya tidak dapat mendukung tuntutan pembuatan PDF modern: kepatuhan PDF 2.0, tanda tangan digital PAdES, arsip PDF/A-4, atau integrasi dengan framework seperti Laravel.

TCPDF-Next mempertahankan konsep yang dikenal developer PHP — addPage(), cell(), setFont() — sambil membangun ulang semuanya di bawah untuk memenuhi standar 2026.

Sekilas

TCPDF AsliTCPDF-Next
Versi PHP5.x – 8.x8.5+ saja
Spesifikasi PDF1.4 – 1.72.0 (ISO 32000-2:2020)
ArsitekturClass ~30K baris tunggal213 file, 26 modul, 12 trait composable
Type safetyTidak adaPHPStan Level 10, backed enum, class readonly
Tanda tanganPKCS#7 dasarPAdES B-B (Core) → B-LTA (Pro)
ArsipPDF/A-1b (parsial)PDF/A-4 (ISO 19005-4:2020)
Rendering HTMLBuilt-in (CSS terbatas)Built-in + Chrome CDP (CSS3 penuh)
Testing~50 test908+ test, 28.881+ assertion
EkstensibilitasSubclass monolithEkosistem modular + API ekstensi

Arsitektur Ekosistem

TCPDF-Next bukan monolith. Ini adalah ekosistem modular dari empat paket, masing-masing dengan tanggung jawab yang jelas:

Core TCPDF-Next
Core
Fungsional
Core Core
PDF 2.0 Engine
Artisan Artisan
Chrome CDP
Pro Pro
Enterprise
Integrasi framework
Laravel Laravel
Laravel 12
Symfony Symfony
Symfony 7
CodeIgniter CodeIgniter
CodeIgniter 4
Kompatibilitas
Adaptation Adaptation
Migrasi TCPDF
  • Core (148 file) — Mesin PDF. Semua yang Anda butuhkan untuk pembuatan dokumen, tipografi, barcode, enkripsi, dan tanda tangan PAdES B-B.
  • Artisan (17 file) — Integrasi Chrome CDP untuk rendering HTML/CSS3 pixel-perfect. Output PDF yang bisa diseleksi teksnya via Form XObject, bukan gambar raster.
  • Laravel (4 file) — Integrasi framework zero-config. Facade, respons HTTP, queue job, binding Octane-safe.
  • Pro (47 file) — Fitur profesional. PAdES B-T hingga B-LTA, PDF/A-4, HSM signing, barcode khusus.

API ekstensi terbuka: developer pihak ketiga dapat membangun ekstensi mereka sendiri yang terhubung ke Core melalui interface yang dipublikasikan (PdfDocumentInterface, SignerInterface, FontManagerInterface, HsmSignerInterface).

12 Trait Composable

Class Document adalah satu titik masuk. Alih-alih class monolitik, fungsionalitasnya terdiri dari 12 trait yang terfokus:

TraitTanggung Jawab
HasMetadataTitle, author, subject, keyword, bahasa
HasPagesManajemen halaman, ukuran, margin, grup halaman
HasTypographyPemuatan font, ukuran, dekorasi teks, RTL, BiDi
HasColorsRGB, CMYK, spot color, alpha, blend mode
HasTextOutputcell(), multiCell(), text(), write(), writeHtml()
HasDrawingShape, gradien, pattern, SVG, EPS, gambar
HasTransformsScale, rotate, translate, skew, mirror
HasLayoutHeader, footer, kolom, booklet
HasNavigationBookmark, link, TOC, anotasi, lampiran file
HasInteractiveForm field, layer, template, JavaScript
HasSecurityEnkripsi, tanda tangan digital, tagged PDF, BiDi, linearisasi
HasOutputoutput(), save(), getPdfData(), streaming

Setiap method public mengembalikan static untuk fluent chaining:

php
$pdf = Document::create()
    ->setTitle('Invoice')       // HasMetadata
    ->addPage()                 // HasPages
    ->setFont('Helvetica', '', 12) // HasTypography
    ->setFillColor(240, 240, 240)  // HasColors
    ->cell(0, 10, 'Hello')     // HasTextOutput
    ->save('invoice.pdf');      // HasOutput

Selanjutnya

Didistribusikan di bawah lisensi LGPL-3.0-or-later.