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/AFe 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
/AFou 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.