Baseline do PDF 2.0: cláusulas da ISO 32000-2 implementadas pelo NextPDF
Visão geral
Seção intitulada “Visão geral”Declaração de limite. O NextPDF implementa as cláusulas citadas; a conformidade total com a ISO 32000-2 não é afirmada como uma declaração genérica.
A ISO 32000-2:2020 é o padrão base do PDF 2.0. O NextPDF Core emite PDF 2.0 sem restrições por padrão (ConformanceMode::Plain): um cabeçalho %PDF-2.0, um catálogo de documento, uma estrutura de referência cruzada e um trailer em conformidade. Esta página documenta as cláusulas de baseline que o NextPDF implementa e o limite explícito dessa implementação. A biblioteca implementa as cláusulas citadas. Ela não faz uma declaração genérica de “totalmente em conformidade com a ISO 32000-2”. Um arquivo em conformidade é aquele que um leitor em conformidade consegue processar de acordo com o padrão. Essa determinação cabe a um verificador, não a uma flag da biblioteca.
Instalação
Seção intitulada “Instalação”composer require nextpdf/core:^3A saída de baseline do PDF 2.0 é o padrão do Core; você não precisa fazer uma chamada de perfil. ConformanceMode::Plain é o discriminador padrão. Os perfis PDF/A-4, PDF/UA-2, PDF/X e ZUGFeRD são subconjuntos restritos construídos sobre esse baseline.
Visão conceitual
Seção intitulada “Visão conceitual”Todo documento do NextPDF começa como um arquivo PDF 2.0 antes que qualquer perfil seja aplicado. O gravador atende às obrigações estruturais que a ISO 32000-2 impõe a um arquivo em conformidade:
- Catálogo de documento — §7.7.2: o objeto raiz referenciado pelo
/Rootdo trailer, presente em toda saída. - Estrutura de referência cruzada — §7.5.8: uma tabela ou stream de referência cruzada que localiza cada objeto.
- Trailer — §7.5.5: o dicionário de trailer que um arquivo em conformidade deve carregar, incluindo o identificador
/IDdo arquivo. O/IDé único por arquivo e é excluído por normalização na comparação. É por isso que a maioria das saídas com múltiplos objetos usareproducibility_profile: structural, não bit a bit. - Estrutura lógica — §14.7.2: quando o modo marcado está habilitado, o baseline de
StructTreeRootque dá suporte ao perfil PDF/UA-2. - Extensão de versão — §7.12: quando uma extensão de desenvolvedor é declarada, o mecanismo do dicionário Extensions / prefixo de desenvolvedor.
O NextPDF implementa essas cláusulas. Ele não executa uma avaliação completa de conformidade com a ISO 32000-2. Use um validador externo, como o verificador de gramática Arlington ou o veraPDF, para obter esse veredito. O NextPDF\Compliance fornece as verificações cruzadas de fluxo de bytes (ArlingtonValidator) que evidenciam divergências estruturais. Elas ajudam na verificação. Elas não são um certificado.
Superfície da API
Seção intitulada “Superfície da API”| Símbolo | Efeito |
|---|---|
ConformanceMode::Plain | Padrão — saída PDF 2.0 sem restrições. |
ConformanceMode::requiresPdf17(): bool | Retorna False para os modos PDF 2.0; o gravador emite um cabeçalho %PDF-2.0. |
NextPDF\Compliance\Validator\ArlingtonValidator | Verificação cruzada de gramática contra o modelo PDF Arlington (auxilia a verificação). |
Exemplo de código — Início rápido
Seção intitulada “Exemplo de código — Início 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";Exemplo de código — Produção
Seção intitulada “Exemplo de código — Produção”Em produção, execute um validador estrutural externo (Arlington / veraPDF) na integração contínua (CI) contra uma saída representativa e use o relatório gerado como gate. A biblioteca emite a estrutura; o verificador determina se ela está em conformidade. A biblioteca não faz nenhuma declaração genérica de conformidade.
Casos extremos e pontos de atenção
Seção intitulada “Casos extremos e pontos de atenção”/IDé único por arquivo. Uma saída de baseline que contém um/IDde trailer,/CreationDateou prefixos de subconjunto de fonte não é estável byte a byte. Compare usando o perfil estrutural (qpdf-normalize), não um sha256 bruto.- Plain ≠ arquivamento.
ConformanceMode::Plainnão é PDF/A. Ele não carrega nenhum OutputIntent nem marcadorpdfaid. Não o trate como arquivamento. - Implementa ≠ totalmente em conformidade. Esta página lista as cláusulas que o NextPDF implementa. Ela não afirma que cada cláusula da ISO 32000-2 é atendida para cada documento. Esse é um veredito por documento emitido por um verificador.
- As extensões têm namespace. Uma extensão de desenvolvedor usa o dicionário Extensions da §7.12 com um prefixo registrado. Uma chave privada sem prefixo é um desvio do baseline.
Desempenho
Seção intitulada “Desempenho”A emissão do baseline é o caminho central do mecanismo. O orçamento é de tempo de parede ≤ 1500 ms e pico ≤ 64 MB para um documento típico. O gravador de baseline tem suporte na matriz de backport (PHP 8.1–8.4).
Notas de segurança
Seção intitulada “Notas de segurança”A saída de baseline do PDF 2.0 não inclui criptografia nem assinatura, a menos que você adicione uma explicitamente. A criptografia oferece confidencialidade e é abordada em uma receita separada. Os bits de permissão da ISO dependem da cooperação do leitor; eles não são controle de acesso. O baseline não oferece nenhuma garantia de segurança.
Conformidade
Seção intitulada “Conformidade”| Declaração | Especificação | Cláusula | reference_id |
|---|---|---|---|
| Um arquivo PDF 2.0 em conformidade deve carregar um trailer / estrutura de arquivo em conformidade. | ISO 32000-2 | §7.5.5 | |
| Cada objeto é localizável por meio de uma tabela ou stream de referência cruzada. | ISO 32000-2 | §7.5.8 | |
| O arquivo tem um catálogo de documento como objeto raiz. | ISO 32000-2 | §7.7.2 | |
| A conformidade é definida em termos de gravadores e leitores em conformidade. | ISO 32000-2 | §7.2 | |
| As extensões de versão usam o dicionário Extensions / prefixo de desenvolvedor. | ISO 32000-2 | §7.12 | |
| A saída marcada se apoia no baseline de estrutura lógica da ISO 32000-2. | ISO 32000-2 | §14.7.2 |
As citações são referências de clause-id + reference_id para o corpus de verificação. Nenhum texto de normas é reproduzido; o NextPDF resume as cláusulas com suas próprias palavras.