Lewati ke konten

Ikhtisar NextPDF compat-legacy

nextpdf/compat-legacy adalah alternatif yang kompatibel dengan TCPDF: lapisan kompatibilitas yang mengekspos API publik TCPDF 6.x di mesin Portable Document Format (PDF) 2.0 NextPDF. Tugasnya hanya satu: membantu kode yang sudah bergantung pada TCPDF 6.x agar dapat berjalan di mesin NextPDF tanpa penulisan ulang, sehingga Anda dapat bermigrasi berkas demi berkas, bukan sekaligus.

Ini bukan fork dari TCPDF, dan bukan pula klona perilaku yang terjamin. Ini adalah implementasi independen yang mempertahankan tanda tangan pemanggilan TCPDF. Deskripsi yang lebih tepat adalah: paket ini mencakup 94 dari sekitar 120 metode TCPDF 6.x yang disurvei melalui delegasi langsung, sementara metode lainnya memiliki perbedaan perilaku yang terdokumentasi (lihat /integrations/tcpdf-compat/method-coverage/).

  • Alat bantu migrasi. Paket ini merupakan bagian dari keluarga compat NextPDF. Paket ini membantu Anda beralih dari pustaka PDF lawas; paket ini tidak dimaksudkan sebagai dependensi permanen. Perlakukan paket ini sebagai perancah yang Anda hapus seiring Anda mengadopsi API modern.
  • Adaptor permukaan API. Paket ini menyediakan nama kelas TCPDF, nama metode, urutan parameter, dan nilai standar 6.2.13. Paket ini mendelegasikan pemanggilan ke sebuah instans NextPDF\Core\Document.
  • Implementasi independen yang dibangun secara clean-room. Paket ini tidak menyalin atau menerjemahkan kode sumber TCPDF, artefak build, data font, atau ekspresi lain yang dilindungi hak cipta. Paket ini menggunakan nama TCPDF hanya untuk mengidentifikasi interoperabilitas. Pernyataan kanoniknya terdapat di berkas NOTICE paket.
  • Ini bukan “pengganti langsung” dengan keluaran yang identik secara byte. Untuk metode yang didelegasikan, hasilnya terlihat kompatibel, tetapi byte PDF yang dihasilkan berbeda karena ada implementasi PDF 2.0 yang terpisah dan independen yang berjalan di baliknya.
  • Ini bukan “kompatibel (bukan identik per byte) dengan TCPDF”. Beberapa metode tertentu menerima parameter lawas yang diabaikan oleh mesin, atau tidak melakukan apa pun sama sekali. Metode-metode ini didaftar dan diuji — lihat /integrations/tcpdf-compat/method-coverage/.
  • Ini bukan produk penandatanganan atau pengarsipan tersendiri. Tanda tangan digital dan konformitas pengarsipan PDF/A hanya tersedia pada edisi NextPDF komersial. Dokumentasi ini tidak membuat klaim apa pun tentang sertifikasi, jaminan, atau tanda tangan yang sah secara hukum.

Mengapa bermigrasi melalui lapisan kompatibilitas

Bagian berjudul “Mengapa bermigrasi melalui lapisan kompatibilitas”

Menulis ulang setiap pemanggilan TCPDF di seluruh aplikasi besar berisiko dan sulit dirilis secara bertahap. Lapisan kompatibilitas memungkinkan Anda:

  1. Ganti dependensinya, lalu jalankan suite pengujian Anda yang sudah ada untuk menemukan apa yang berfungsi tanpa perubahan.
  2. Gunakan mode ketat sebagai audit yang mencantumkan setiap titik tempat perilaku TCPDF tidak dapat direproduksi secara persis.
  3. Migrasikan titik-titik pemanggilan tersebut ke API NextPDF modern satu per satu, sehingga aplikasi tetap dapat dirilis sepanjang prosesnya.

Keadaan akhir yang dituju adalah API NextPDF\Core\Document modern, dengan lapisan kompatibilitas yang sudah dihapus. Lihat /integrations/tcpdf-compat/migration/ untuk strategi lengkapnya.

Saat adaptor mendelegasikan pemanggilan TCPDF, pemanggilan tersebut berjalan di mesin PDF 2.0 (ISO 32000-2), dengan enkripsi standard-handler Advanced Encryption Standard (AES)-256 yang tersedia serta keamanan tipe PHPStan Level 10 di seluruh adaptor. Keluaran selalu ditulis sebagai PDF 2.0; adaptor tidak dapat menargetkan versi PDF yang lebih lama (lihat /integrations/tcpdf-compat/method-coverage/ §4).

Adaptor memperketat beberapa perilaku historis TCPDF 6.2.13:

Perilaku lawasPerilaku adaptor
Error() memanggil die() dan menghentikan proses secara diam-diamError() melemparkan RuntimeException — dapat diamati dan ditangkap
Metode HTML yang dapat mengeksekusi PHP dari markupJalur keluar tersebut dinonaktifkan — markup tidak dapat memicu eksekusi PHP
Output() mencetak langsung dan dapat merusak buffer keluaran workerKeluaran melewati jembatan tujuan yang aman
Rekursi header/footer yang tidak terlindungiDilindungi dari rekursi

Lapisan kompatibilitas disertakan dalam distribusi core (nextpdf/compat-legacy, yang membutuhkan nextpdf/core ^3.0). Enkripsi melalui standard handler tersedia di core. Tanda tangan digital dan konformitas pengarsipan PDF/A memerlukan edisi NextPDF komersial; adaptor mengekspos titik masuknya, tetapi jalur core bukan produk penandatanganan. Lihat /integrations/tcpdf-compat/security-and-operations/ untuk pernyataan yang tepat.

  • /integrations/tcpdf-compat/install/ — instal paket dan verifikasi koneksi mesin.
  • /integrations/tcpdf-compat/quickstart/ — buat dokumen pertama yang dapat dijalankan dan tercakup oleh pengujian.
  • /integrations/tcpdf-compat/method-coverage/ — lihat secara tepat apa yang dilakukan setiap metode TCPDF di sini.
  • /integrations/tcpdf-compat/migration/ — rencanakan strategi migrasi berkas demi berkas.
  • /integrations/tcpdf-compat/configuration/ — konfigurasikan mode ketat dan pengaturan adaptor.
  • /integrations/tcpdf-compat/production-usage/ — jalankan adaptor di bawah beban dan di dalam worker.
  • /integrations/tcpdf-compat/security-and-operations/ — tinjau enkripsi, postur penandatanganan, dan pengerasan.
  • /integrations/tcpdf-compat/troubleshooting/ — perbaiki kegagalan migrasi yang umum.
  • /integrations/tcpdf-compat/integration/ / /integrations/tcpdf-compat/boot-and-discovery/ — sambungkan facade ke dalam aplikasi dan daftarkan alias kelas global.
  • docs/TCPDF_COVERAGE.md — matriks cakupan otoritatif (di dalam repo)
  • Berkas NOTICE paket — pernyataan implementasi independen