Zum Inhalt springen

NextPDF compat-legacy installieren

nextpdf/compat-legacy ist eine Composer-Bibliothek. Sie erfordert PHP 8.4 oder neuer und nextpdf/core ^3.0. Ihre Installation ändert Ihre bestehenden TCPDF-Aufrufe nicht — sie stellt eine Klasse bereit, auf die Sie umstellen können.

AbhängigkeitVersionMaßgebliche Quelle
PHP>=8.4 <9.0Paket composer.jsonrequire.php
nextpdf/core^3.0Paket composer.jsonrequire
Composer2.7 oder neuerToolchain-Baseline

Das Paket deklariert PHPStan Level 10 ohne Baseline und enthält eine eigene Test-Suite. Zur Laufzeit setzt es PHP 8.4 voraus. Die umfassendere NextPDF-Engine unterstützt PHP 8.1 bis 8.4 über die Backport-Linie; dieser Adapter legt PHP 8.4 jedoch als Untergrenze fest.

Fügen Sie das Paket mit Composer hinzu:

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

Composer löst nextpdf/core ^3.0 als transitive Abhängigkeit auf. Für den Kernfunktionsumfang ist keine zusätzliche Laufzeiterweiterung erforderlich.

Die Paketmetadaten berücksichtigen den früheren Namen nextpdf/compat-tcpdf ebenfalls über einen Composer-replace-Eintrag. Neue Installationen sollten nextpdf/compat-legacy anfordern — das ist der kanonische Paketname.

Prüfen Sie nach der Installation, ob die Adapterklasse geladen und die Engine-Verknüpfung aufgelöst wird. Die folgende Prüfung erzeugt ein einseitiges PDF vollständig im Arbeitsspeicher und prüft den PDF-Header — damit deckt sie denselben Bereich ab, den der Pakettest tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php prüft.

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";

Führen Sie die Prüfung aus:

Terminal-Fenster
php examples/install-verify.php

Erwartet wird eine einzelne OK:-Zeile. Ein %PDF-Präfix in der zurückgegebenen Zeichenkette bestätigt, dass der Adapter ein NextPDF\Core\Document konstruiert, Seiten- und Textaufrufe delegiert und gültige PDF-2.0-Ausgabe serialisiert hat.

Der Adapter erfordert nextpdf/core ^3.0. Prüfen Sie die aufgelöste Version:

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

Falls Composer eine Core-Version außerhalb von ^3.0 auflöst, schlägt der Adapter bereits beim Konstruieren fehl, anstatt falsche Ausgabe zu erzeugen. Pinnen Sie die Engine explizit in Ihrer composer.json, falls Ihr Projekt ebenfalls direkt von ihr abhängt.

Falls Ihre Codebasis new \TCPDF(...) im globalen Namensraum aufruft und Sie diese use-/require-Zeilen noch nicht ändern können, kann das Paket globale Aliase registrieren. Diese Funktion ist optional aktivierbar und wird unter /integrations/tcpdf-compat/boot-and-discovery/. beschrieben. Aktivieren Sie die Aliase nicht, wenn die echte TCPDF-Bibliothek ebenfalls im selben Prozess installiert ist — siehe /integrations/tcpdf-compat/troubleshooting/ für die Regel zur Konfliktvermeidung.

  • Sie ändert oder entfernt keine bestehende TCPDF-Abhängigkeit. Das Entfernen von tecnickcom/tcpdf ist ein bewusst späterer Schritt in /integrations/tcpdf-compat/migration/.
  • Sie aktiviert keine digitalen Signaturen oder PDF/A. Diese erfordern eine kommerzielle NextPDF-Edition (siehe /integrations/tcpdf-compat/security-and-operations/).
  • Sie ändert nicht das Ziel der PDF-Ausgabe. Die Ausgabe ist immer PDF 2.0.
  • /integrations/tcpdf-compat/quickstart/ — erstellen Sie Ihr erstes echtes Dokument.
  • /integrations/tcpdf-compat/configuration/ — Strict-Modus und Adapterkonfiguration.
  • /integrations/tcpdf-compat/migration/ — die Strategie für die Datei-für-Datei-Migration.
  • /integrations/tcpdf-compat/method-coverage/ — was jede TCPDF-Methode hier genau tut.
  • Paket-composer.json — maßgebliche Abhängigkeitsbeschränkungen
  • docs/TCPDF_COVERAGE.md — maßgebliche Abdeckungsmatrix (im Repo)