Base de PDF 2.0: cláusulas de ISO 32000-2 implementadas por NextPDF
De un vistazo
Sección titulada «De un vistazo»Declaración de límite. NextPDF implementa las cláusulas citadas; la conformidad completa con ISO 32000-2 no se formula como afirmación general.
ISO 32000-2:2020 es el estándar base de PDF 2.0. La salida predeterminada de NextPDF Core (ConformanceMode::Plain) es PDF 2.0 sin restricciones: un encabezado %PDF-2.0, un catálogo del documento, una estructura de referencias cruzadas y un tráiler conforme. Esta página documenta las cláusulas base que implementa NextPDF y su límite explícito. La biblioteca implementa las cláusulas citadas, pero no formula una afirmación general de «conformidad completa con ISO 32000-2». Un archivo conforme es aquel que un lector conforme puede procesar según el estándar. Esa determinación corresponde a un verificador, no a un indicador establecido por la biblioteca.
Instalación
Sección titulada «Instalación»composer require nextpdf/core:^3La salida base de PDF 2.0 es la opción predeterminada de Core: no hace falta activar ningún perfil. ConformanceMode::Plain es el discriminador predeterminado; los perfiles PDF/A-4, PDF/UA-2, PDF/X y ZUGFeRD son subconjuntos restringidos superpuestos sobre esta base.
Resumen conceptual
Sección titulada «Resumen conceptual»Cada documento de NextPDF es un archivo PDF 2.0 antes de que se aplique cualquier perfil. El escritor satisface las obligaciones estructurales que ISO 32000-2 impone a un archivo conforme:
- Catálogo del documento — §7.7.2: el objeto raíz referenciado por
/Rooten el tráiler, presente en cada salida. - Estructura de referencias cruzadas — §7.5.8: una tabla o un flujo de referencias cruzadas que permite localizar cada objeto.
- Tráiler — §7.5.5: el diccionario de tráiler que debe incluir un archivo conforme, con el identificador de archivo
/ID. El/IDes único por archivo y se normaliza para la comparación. Por eso, la mayor parte de la salida con varios objetos usareproducibility_profile: structural, no un perfil a nivel de bits. - Estructura lógica — §14.7.2: cuando el modo etiquetado está habilitado, la base de
StructTreeRootsobre la que se construye el perfil PDF/UA-2. - Extensión de versión — §7.12: cuando se declara una extensión de desarrollador, el mecanismo del diccionario Extensions / prefijo de desarrollador.
NextPDF implementa estas cláusulas. No ejecuta una evaluación completa de conformidad con ISO 32000-2. Ese papel corresponde a un validador externo (por ejemplo, el verificador de gramática Arlington o veraPDF). NextPDF\Compliance incluye las comprobaciones cruzadas del flujo de bytes (ArlingtonValidator) que detectan desacuerdos estructurales. Ayudan a verificar. No constituyen un certificado.
Superficie de la API
Sección titulada «Superficie de la API»| Símbolo | Efecto |
|---|---|
ConformanceMode::Plain | Predeterminado: salida PDF 2.0 sin restricciones. |
ConformanceMode::requiresPdf17(): bool | Devuelve falso para los modos PDF 2.0; el escritor emite un encabezado %PDF-2.0. |
NextPDF\Compliance\Validator\ArlingtonValidator | Comprobación cruzada de gramática contra el modelo PDF de Arlington (ayuda a la verificación). |
Ejemplo de código — Inicio rápido
Sección titulada «Ejemplo de código — Inicio rápido»<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$out = getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/baseline.pdf';
$doc = Document::createStandalone(); // ConformanceMode::Plain — PDF 2.0$doc->setTitle('PDF 2.0 baseline');$doc->writeHtml('<h1>Hello PDF 2.0</h1><p>Unconstrained baseline output.</p>');$doc->save($out);
echo "Wrote {$out} (%PDF-2.0). Validate structure with an external checker.\n";Ejemplo de código — Producción
Sección titulada «Ejemplo de código — Producción»La postura de producción para la base consiste en ejecutar un validador estructural externo (Arlington / veraPDF) en CI contra una salida representativa y condicionar la publicación a su informe. La biblioteca emite la estructura; el verificador determina si es conforme. La biblioteca no formula ninguna afirmación general de conformidad.
Casos límite y trampas
Sección titulada «Casos límite y trampas»/IDes único por archivo. La salida base que contiene un/IDde tráiler, una/CreationDateo prefijos de subconjunto de fuentes no es estable byte a byte. Debe compararse con el perfil estructural (qpdf-normalize), no con un sha256 sin procesar.- Plain ≠ archivado.
ConformanceMode::Plainno es PDF/A. No incluye ningún OutputIntent ni marcadorpdfaid. No debe tratarse como archivado. - Implementa ≠ totalmente conforme. Esta página enumera las cláusulas que NextPDF implementa. No es una declaración de que cada cláusula de ISO 32000-2 se satisfaga para cada documento: ese veredicto corresponde a un verificador por documento.
- Las extensiones tienen espacio de nombres. Una extensión de desarrollador usa el diccionario Extensions de §7.12 con un prefijo registrado. Una clave privada sin prefijo es una desviación de la base.
Rendimiento
Sección titulada «Rendimiento»La emisión de la base es la ruta principal del motor. Tiene un presupuesto de tiempo total ≤ 1500 ms, con un pico ≤ 64 MB para un documento típico. El escritor de la base es compatible con la matriz de backport (PHP 8.1-8.4).
Notas de seguridad
Sección titulada «Notas de seguridad»La salida base de PDF 2.0 no incluye cifrado ni firma a menos que se añadan explícitamente. El cifrado proporciona confidencialidad (en una recipe aparte). Los bits de permiso de ISO dependen de la cooperación del lector; no son control de acceso. La base no ofrece ninguna garantía de seguridad.
Conformidad
Sección titulada «Conformidad»| Afirmación | Especificación | Cláusula | reference_id |
|---|---|---|---|
| Un archivo PDF 2.0 conforme debe incluir un tráiler / una estructura de archivo conformes. | ISO 32000-2 | §7.5.5 | |
| Cada objeto puede localizarse mediante una tabla o un flujo de referencias cruzadas. | ISO 32000-2 | §7.5.8 | |
| El archivo contiene un catálogo del documento como objeto raíz. | ISO 32000-2 | §7.7.2 | |
| La conformidad se expresa en términos de escritores y lectores conformes. | ISO 32000-2 | §7.2 | |
| Las extensiones de versión usan el diccionario Extensions / prefijo de desarrollador. | ISO 32000-2 | §7.12 | |
| La salida etiquetada se construye sobre la base de la estructura lógica de ISO 32000-2. | ISO 32000-2 | §14.7.2 |
Las citas son punteros compuestos por identificador de cláusula + reference_id hacia el corpus de verificación. No se reproduce ningún texto del estándar; las cláusulas se resumen con las palabras de NextPDF.