Lewati ke konten

Menginstal NextPDF compat-legacy

nextpdf/compat-legacy adalah pustaka Composer. Pustaka ini memerlukan PHP 8.4 atau lebih baru dan nextpdf/core ^3.0. Instal pustaka ini untuk menambahkan kelas kompatibilitas yang dapat Anda alihkan; panggilan TCPDF yang sudah ada tetap tidak berubah.

DependensiVersiSumber rujukan
PHP>=8.4 <9.0paket composer.jsonrequire.php
nextpdf/core^3.0paket composer.jsonrequire
Composer2.7 atau lebih barubaseline toolchain

Paket ini menyertakan rangkaian pengujiannya sendiri dan mendeklarasikan PHPStan Level 10 tanpa baseline. Paket ini memerlukan PHP 8.4 saat runtime. Mesin NextPDF yang lebih luas mendukung PHP 8.1 hingga 8.4 pada jalur backport, tetapi adaptor ini menetapkan PHP 8.4 sebagai batas minimum.

Gunakan Composer untuk menambahkan paket:

Terminal window
composer require nextpdf/compat-legacy:^3.0

Composer akan menyelesaikan nextpdf/core ^3.0 sebagai dependensi transitif. Set fitur inti tidak memerlukan ekstensi runtime lain.

Metadata paket juga menerima nama historis nextpdf/compat-tcpdf melalui entri replace Composer. Pemasangan baru sebaiknya menggunakan nextpdf/compat-legacy, nama paket kanonis.

Setelah pemasangan, pastikan kelas adaptor termuat dan tautan ke mesin terselesaikan. Pemeriksaan berikut membuat satu halaman Portable Document Format (PDF) sepenuhnya di dalam memori dan memverifikasi header PDF. Pemeriksaan ini menguji permukaan yang sama dengan yang diverifikasi oleh pengujian paket tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php.

examples/install-verify.php
<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\TCPDF;
$pdf = new TCPDF('P', 'mm', 'A4');
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Cell(0, 10, 'compat-legacy install verified');
$bytes = $pdf->Output('verify.pdf', 'S');
if (! str_starts_with($bytes, '%PDF')) {
fwrite(STDERR, "Install check failed: output is not a PDF.\n");
exit(1);
}
echo "OK: adapter loaded, engine linked, PDF produced (" . strlen($bytes) . " bytes).\n";

Jalankan:

Terminal window
php examples/install-verify.php

Keluaran yang diharapkan adalah satu baris OK:. Awalan %PDF pada string yang dikembalikan memastikan bahwa adaptor telah membangun NextPDF\Core\Document, mendelegasikan panggilan halaman dan teks, serta menserialisasi keluaran PDF 2.0 yang valid.

Adaptor ini memerlukan nextpdf/core ^3.0. Pastikan versi yang diselesaikan oleh Composer:

Terminal window
composer show nextpdf/core --format=json

Jika Composer menyelesaikan versi core di luar ^3.0, adaptor akan gagal lebih awal saat konstruksi, alih-alih menghasilkan keluaran yang salah. Sematkan mesin secara eksplisit di composer.json Anda jika proyek Anda juga bergantung padanya secara langsung.

Jika basis kode Anda memanggil new \TCPDF(...) di namespace global dan Anda belum dapat mengubah baris use/require tersebut, paket ini dapat mendaftarkan alias global. Perilaku ini bersifat opt-in dan dijelaskan di /integrations/tcpdf-compat/boot-and-discovery/. Jangan aktifkan jika pustaka TCPDF asli juga terpasang dalam proses yang sama; lihat /integrations/tcpdf-compat/troubleshooting/ untuk aturan penghindaran konflik.

  • Pemasangan tidak mengubah atau menghapus dependensi TCPDF yang sudah ada. Hapus tecnickcom/tcpdf hanya sebagai langkah lanjutan yang disengaja di /integrations/tcpdf-compat/migration/.
  • Pemasangan tidak mengaktifkan tanda tangan digital atau PDF/A. Fitur-fitur tersebut memerlukan edisi NextPDF komersial (lihat /integrations/tcpdf-compat/security-and-operations/).
  • Pemasangan tidak mengubah target keluaran PDF. Keluaran selalu PDF 2.0.
  • /integrations/tcpdf-compat/quickstart/ — buat dokumen nyata pertama Anda.
  • /integrations/tcpdf-compat/configuration/ — konfigurasikan mode ketat dan adaptor.
  • /integrations/tcpdf-compat/migration/ — gunakan strategi migrasi berkas demi berkas.
  • /integrations/tcpdf-compat/method-coverage/ — lihat dengan tepat apa yang dilakukan setiap metode TCPDF di sini.
  • composer.json paket — batasan dependensi yang otoritatif
  • docs/TCPDF_COVERAGE.md — matriks cakupan yang otoritatif (di dalam repo)