Descripción general de compat-legacy de NextPDF
De un vistazo
Sección titulada «De un vistazo»nextpdf/compat-legacy es una alternativa compatible con TCPDF: una capa de compatibilidad que expone la API pública de TCPDF 6.x sobre el motor PDF 2.0 de NextPDF. Existe con un único propósito: permitir que una base de código que ya depende de TCPDF 6.x se ejecute sobre el motor de NextPDF sin reescribirla, de modo que la migración pueda avanzar archivo por archivo en lugar de hacerse toda de una vez.
No es un fork de TCPDF ni se presenta como un clon con comportamiento garantizado. Es una implementación independiente que conserva las firmas de llamada de TCPDF. La descripción precisa es esta: cubre 94 de aproximadamente 120 métodos de TCPDF 6.x analizados mediante delegación directa, mientras que los métodos restantes presentan diferencias de comportamiento documentadas (consulte /integrations/tcpdf-compat/method-coverage/).
- Una ayuda para la migración. El paquete forma parte de la familia de compatibilidad de NextPDF. Su propósito es acortar el camino para dejar atrás una biblioteca PDF heredada, no convertirse en una dependencia permanente. Conviene tratarla como un andamiaje que se retira a medida que se adopta la API moderna.
- Un adaptador de superficie de API. Proporciona el nombre de clase de TCPDF, los nombres de los métodos, el orden de los parámetros y los valores predeterminados de 6.2.13. Las llamadas se delegan en una instancia de
NextPDF\Core\Document. - Una implementación independiente y de sala limpia. No se copió ni se tradujo a este paquete ningún código fuente de TCPDF, artefacto de compilación, dato de fuentes ni ninguna otra expresión protegible por derechos de autor. El nombre TCPDF se utiliza únicamente con fines de identificación de interoperabilidad. La declaración canónica se encuentra en el archivo
NOTICEdel paquete.
Qué no es
Sección titulada «Qué no es»- No es un «reemplazo directo» con una salida idéntica byte a byte. El resultado visible es compatible en los métodos delegados, pero los bytes del PDF generado difieren porque el motor subyacente es una implementación PDF 2.0 distinta e independiente.
- No es «100 % compatible con TCPDF». Un conjunto definido de métodos acepta parámetros heredados que el motor no respeta, o que no hacen nada en absoluto. Estos se enumeran y se prueban; consulte /integrations/tcpdf-compat/method-coverage/.
- No es, por sí mismo, un producto de firma ni de archivado. Las firmas digitales y la conformidad de archivado PDF/A están reservadas a una edición comercial de NextPDF. Esta documentación no formula afirmaciones de firma certificada, garantizada ni legalmente válida.
Por qué migrar a través de una capa de compatibilidad
Sección titulada «Por qué migrar a través de una capa de compatibilidad»Reescribir por completo todas las llamadas a TCPDF en una aplicación grande implica un alto riesgo y resulta difícil de entregar de forma incremental. La capa de compatibilidad permite:
- Sustituir la dependencia y ejecutar el conjunto de pruebas existente para detectar qué funciona ya sin cambios.
- Usar el modo estricto como auditoría para enumerar cada punto donde el comportamiento de TCPDF no puede reproducirse con exactitud.
- Migrar esos puntos de llamada a la API moderna de NextPDF uno por uno, manteniendo la aplicación lista para entregar en todo momento.
El estado final es la API moderna NextPDF\Core\Document con la capa de compatibilidad eliminada. Consulte /integrations/tcpdf-compat/migration/ para conocer la estrategia completa.
Qué aporta el motor de NextPDF
Sección titulada «Qué aporta el motor de NextPDF»Cuando se delega una llamada a TCPDF, esta se ejecuta sobre un motor PDF 2.0 (ISO 32000-2) con cifrado AES-256 del controlador estándar disponible y seguridad de tipos de PHPStan nivel 10 en todo el adaptador. La salida siempre se escribe como PDF 2.0; el adaptador no puede rebajar el destino a versiones de PDF anteriores (consulte /integrations/tcpdf-compat/method-coverage/ §4).
El adaptador refuerza varios escollos históricos de TCPDF 6.2.13:
| Comportamiento heredado | Comportamiento del adaptador |
|---|---|
Error() llama a die() y termina el proceso de forma silenciosa | Error() lanza RuntimeException: observable y capturable |
| Método HTML que podía ejecutar PHP a partir del marcado | Esa vía de escape está deshabilitada: el marcado no puede desencadenar la ejecución de PHP |
Output() imprime directamente y puede corromper los búferes de salida de los procesos de trabajo | La salida se enruta a través de un puente de destino seguro |
| Recursión sin protección de header/footer | Protegida contra la recursión |
Alcance y ediciones
Sección titulada «Alcance y ediciones»La capa de compatibilidad se distribuye en la distribución core (nextpdf/compat-legacy, que requiere nextpdf/core ^3.0). El cifrado mediante el controlador estándar está disponible en core. Las firmas digitales y la conformidad de archivado PDF/A requieren una edición comercial de NextPDF; el adaptador expone los puntos de entrada, pero la ruta de core no es un producto de firma. Consulte /integrations/tcpdf-compat/security-and-operations/ para ver la declaración precisa.
Adónde ir a continuación
Sección titulada «Adónde ir a continuación»- /integrations/tcpdf-compat/install/: instalar el paquete y verificar el enlace con el motor.
- /integrations/tcpdf-compat/quickstart/: crear un primer documento ejecutable y respaldado por pruebas.
- /integrations/tcpdf-compat/method-coverage/: exactamente qué hace aquí cada método de TCPDF.
- /integrations/tcpdf-compat/migration/: la estrategia de migración archivo por archivo.
- /integrations/tcpdf-compat/configuration/: modo estricto y configuración del adaptador.
- /integrations/tcpdf-compat/production-usage/: ejecutar el adaptador bajo carga y en procesos de trabajo.
- /integrations/tcpdf-compat/security-and-operations/: cifrado, postura de firma y endurecimiento.
- /integrations/tcpdf-compat/troubleshooting/: fallos de migración habituales y sus soluciones.
- /integrations/tcpdf-compat/integration/ / /integrations/tcpdf-compat/boot-and-discovery/: integración de la fachada en una aplicación y registro de alias de clase globales.
Consulte también
Sección titulada «Consulte también»docs/TCPDF_COVERAGE.md: matriz de cobertura autorizada (en el repositorio)NOTICEdel paquete: declaración de implementación independiente