Blog

Por que dois validadores PDF/A são melhores que um

Um resultado PDF/A de um único motor não é evidência forte de auditoria. Veja por que validar com dois motores e como fazer isso grátis em gpdf.com/validator/.

Um PDF está conforme PDF/A-3 ou não está. Então por que rodar dois validadores no mesmo arquivo?

Porque, na prática, a especificação é grande o bastante para duas implementações corretas discordarem nas bordas. Em um fluxo que precisa sobreviver a auditoria, um “Pass” de motor único é sinal amarelo, não verde.

PDF/A não é um algoritmo simples

PDF/A aparece em várias partes da ISO 19005: PDF/A-1, PDF/A-2, PDF/A-3 e PDF/A-4, com níveis b, a, u, e e f. Tudo isso ainda depende da especificação base do PDF, a ISO 32000. A superfície normativa chega a milhares de páginas.

As divergências costumam surgir aqui:

  • Transparência em PDF/A-2/3: permitida em condições específicas, mas a interpretação do limite varia.
  • Perfis ICC: o que é obrigatório e o que é recomendado pode ser tratado com rigor diferente.
  • Metadados de anexos em PDF/A-3: AFRelationship, referências /AF e XMP precisam bater.
  • Subconjuntos de fontes: fontes CID e subsets parciais são terreno fértil para diferenças.

Isso nem sempre é bug. É o resultado normal de uma norma complexa implementada por equipes independentes. Setores regulados, por isso, pedem confirmação independente.

O motor de referência e a segunda opinião

veraPDF é a implementação de referência mantida pela PDF Association. Se o veraPDF diz “Pass”, é o sinal individual mais forte que existe para PDF/A.

Mas o melhor sinal individual ainda não é prova de auditoria. Bancos, arquivos de saúde, órgãos públicos e sistemas de preservação costumam exigir um segundo motor porque:

  • O destinatário pode validar com outro motor e rejeitar depois.
  • Um bug em um motor não aparece se você roda o mesmo motor duas vezes.
  • “Duas confirmações independentes” é uma prática comum em compliance.

No gPdf, combinamos veraPDF com nosso próprio motor em Rust + WebAssembly. É uma implementação independente da mesma especificação. Quando ambos passam, a evidência fica muito mais forte; quando divergem, há um ponto claro para investigar.

Dois relatórios em uma URL

O fluxo está gratuito em gpdf.com/validator/. Sem login: envie o arquivo, o veraPDF e o motor edge do gPdf rodam em paralelo, e você recebe dois relatórios lado a lado.

Usos comuns:

  • Antes de entregar um PDF/A: envie, confirme dois “Pass” e guarde os JSON como evidência de QA.
  • Um motor passa e outro falha: compare relatórios; muitas vezes é XMP, referência /AF ou metadata de anexo.
  • Ambos falham: corrija a geração na origem.
  • Auditoria de lote arquivado: valide amostras e anexe os resultados ao papel de trabalho.

O arquivo não é persistido. Ele é processado em memória no Cloudflare Workers e descartado depois que o relatório é renderizado.

Também vale para e-invoicing

Em Factur-X / ZUGFeRD, além do PDF/A-3, é preciso validar o XML CII EN 16931 embutido. O validator do gPdf usa Mustang para essa parte e mostra o resultado junto do relatório PDF/A.

Não é uma questão de desconfiar de uma ferramenta. É construir evidência com implementações independentes.

TL;DR

“Pass” de motor único é sinal amarelo. Dois “Pass” independentes são uma evidência muito melhor. Use validator, baixe os relatórios e anexe ao QA ou à auditoria. Se o PDF foi gerado pela API do gPdf, o validator é o recibo público da conformidade prometida.