NextPDF compat-legacy: overzicht
In een oogopslag
Sectie met titel “In een oogopslag”nextpdf/compat-legacy is een TCPDF-compatibel alternatief: een compatibiliteitslaag die de publieke TCPDF 6.x-API beschikbaar maakt op de NextPDF Portable Document Format (PDF) 2.0-engine. Het pakket heeft één taak: bestaande code die afhankelijk is van TCPDF 6.x op de NextPDF-engine laten draaien zonder herschrijving, zodat je bestand voor bestand kunt migreren in plaats van alles in één keer.
Het is geen fork van TCPDF en ook geen gegarandeerde gedragskloon. Het is een onafhankelijke implementatie die de aanroephandtekeningen van TCPDF behoudt. De precieze afbakening is: het dekt 94 van de ongeveer 120 onderzochte TCPDF 6.x-methoden via directe delegatie, terwijl voor de overige methoden gedocumenteerde gedragsverschillen gelden (zie /integrations/tcpdf-compat/method-coverage/).
Wat het is
Sectie met titel “Wat het is”- Een migratiehulpmiddel. Het pakket behoort tot de NextPDF-compatfamilie. Het helpt je weg te stappen van een verouderde PDF-bibliotheek; het is niet bedoeld als permanente afhankelijkheid. Zie het als steigerwerk dat je verwijdert naarmate je de moderne API in gebruik neemt.
- Een adapter voor het API-oppervlak. Het biedt de TCPDF-klassenaam, methodenamen, parametervolgorde en de standaardwaarden van 6.2.13. Het delegeert aanroepen naar een
NextPDF\Core\Document-instantie. - Een onafhankelijke, clean-room-implementatie. Dit pakket kopieert of vertaalt geen TCPDF-broncode, build-artefacten, lettertypegegevens of andere auteursrechtelijk beschermde uitingen. Het gebruikt de naam TCPDF alleen om interoperabiliteit aan te duiden. De canonieke verklaring staat in het
NOTICE-bestand van het pakket.
Wat het niet is
Sectie met titel “Wat het niet is”- Het is geen „drop-in-vervanging” met byte-identieke uitvoer. Bij gedelegeerde methoden is het zichtbare resultaat compatibel, maar de gegenereerde PDF-bytes verschillen, omdat daaronder een afzonderlijke, onafhankelijke PDF 2.0-implementatie draait.
- Het is niet „100% TCPDF-compatibel”. Een welomschreven set methoden accepteert verouderde parameters die de engine niet honoreert, of doet helemaal niets. Deze methoden zijn opgesomd en getest — zie /integrations/tcpdf-compat/method-coverage/.
- Het is op zichzelf geen ondertekenings- of archiveringsproduct. Digitale handtekeningen en PDF/A-archiveringsconformiteit zijn voorbehouden aan een commerciële NextPDF-editie. Deze documentatie doet geen uitspraken over gecertificeerde, gegarandeerde of juridisch geldige handtekeningen.
Waarom migreren via een compatibiliteitslaag
Sectie met titel “Waarom migreren via een compatibiliteitslaag”Het herschrijven van elke TCPDF-aanroep in een grote applicatie brengt risico met zich mee en is moeilijk stapsgewijs uit te leveren. Met de compatibiliteitslaag kun je:
- De afhankelijkheid vervangen en daarna je bestaande testsuite uitvoeren om te ontdekken wat ongewijzigd werkt.
- strict mode gebruiken als audit die elke plek opsomt waar TCPDF-gedrag niet exact kan worden gereproduceerd.
- Die aanroeplocaties één voor één migreren naar de moderne NextPDF-API, zodat de applicatie gedurende het hele traject uitleverbaar blijft.
Het einddoel is de moderne NextPDF\Core\Document-API, waarbij de compatibiliteitslaag is verwijderd. Zie /integrations/tcpdf-compat/migration/ voor de volledige strategie.
Wat je wint op de NextPDF-engine
Sectie met titel “Wat je wint op de NextPDF-engine”Wanneer de adapter een TCPDF-aanroep delegeert, draait die aanroep op een PDF 2.0-engine (ISO 32000-2), waar Advanced Encryption Standard (AES)-256-versleuteling via de standaardhandler beschikbaar is en de hele adapter PHPStan Level 10-typeveiligheid heeft. Uitvoer wordt altijd weggeschreven als PDF 2.0; de adapter kan niet terugschakelen naar oudere PDF-versies (zie /integrations/tcpdf-compat/method-coverage/ §4).
De adapter maakt verschillende historische gedragingen van TCPDF 6.2.13 veiliger:
| Verouderd gedrag | Adaptergedrag |
|---|---|
Error() roept die() aan en beëindigt het proces stilzwijgend | Error() werpt RuntimeException — waarneembaar en af te vangen |
| HTML-methode waarmee PHP vanuit markup kon worden uitgevoerd | Die ontsnappingsroute is uitgeschakeld — markup kan geen PHP-uitvoering activeren |
Output() geeft rechtstreeks uitvoer en kan de uitvoerbuffers van workers beschadigen | Uitvoer loopt via een veilige bestemmingsbrug |
| Onbeschermde header/footer-recursie | Beveiligd tegen recursie |
Reikwijdte en edities
Sectie met titel “Reikwijdte en edities”De compatibiliteitslaag wordt geleverd in de core-distributie (nextpdf/compat-legacy, die nextpdf/core ^3.0 vereist). Versleuteling via de standaardhandler is beschikbaar in core. Digitale handtekeningen en PDF/A-archiveringsconformiteit vereisen een commerciële NextPDF-editie; de adapter biedt de toegangspunten, maar het core-pad is geen ondertekeningsproduct. Zie /integrations/tcpdf-compat/security-and-operations/ voor de precieze verklaring.
Waar u verder kunt gaan
Sectie met titel “Waar u verder kunt gaan”- /integrations/tcpdf-compat/install/ — installeer het pakket en controleer de enginekoppeling.
- /integrations/tcpdf-compat/quickstart/ — maak een eerste uitvoerbaar document, onderbouwd met tests.
- /integrations/tcpdf-compat/method-coverage/ — bekijk precies wat elke TCPDF-methode hier doet.
- /integrations/tcpdf-compat/migration/ — plan de migratiestrategie bestand voor bestand.
- /integrations/tcpdf-compat/configuration/ — configureer strict mode en adapterinstellingen.
- /integrations/tcpdf-compat/production-usage/ — voer de adapter uit onder belasting en in workers.
- /integrations/tcpdf-compat/security-and-operations/ — bekijk versleuteling, het standpunt over ondertekening en hardening.
- /integrations/tcpdf-compat/troubleshooting/ — los veelvoorkomende migratieproblemen op.
- /integrations/tcpdf-compat/integration/ / /integrations/tcpdf-compat/boot-and-discovery/ — koppel de facade aan een applicatie en registreer globale class-aliassen.
Zie ook
Sectie met titel “Zie ook”docs/TCPDF_COVERAGE.md— gezaghebbende dekkingsmatrix (in de repository)- Pakket
NOTICE— verklaring over de onafhankelijke implementatie