SUMÁRIO
1. Contexto
A assinatura digital de documentos PDF depende da estrutura interna do arquivo e exige que o documento:
- Permita inserção incremental de assinaturas.
- Não utilize compressão de objetos (ObjectStream) que inviabilize a inclusão de campos de assinatura.
- Siga os padrões definidos pela ISO 32000-1 (PDF 1.7) ou posteriores.
Quando o PDF é gerado fora desse padrão, a assinatura pode falhar ou o documento pode ficar inválido.
2. Problemas comuns em PDFs gerados por terceiros
-
Uso de Object Streams ou Cross-Reference Streams
- Tornam mais difícil inserir novos objetos (assinatura).
-
Otimização agressiva (ex.: “Salvar como PDF otimizado para web” em editores)
- Remove informações necessárias para assinatura incremental.
-
Imagens pesadas e gráficos em alta resolução
- Geram PDFs grandes, que podem ser reprocessados pela API para compatibilidade.
-
Proteção, criptografia ou senhas
- Bloqueiam qualquer tentativa de assinatura.
3. Otimização via API
O Plugsign disponibiliza a flag optimizer para ajustar a compatibilidade de documentos:
-
optimizer = 1
- Ativa a otimização obrigatória via Ghostscript, garantindo compatibilidade.
-
optimizer = 0
- Não executa otimização.
- O PDF será assinado apenas se já estiver em um padrão compatível.
-
Sem parâmetro definido
- A API decide automaticamente:
- Se o PDF for considerado incompatível, será otimizado.
- Caso já esteja compatível, segue direto para assinatura.
- A API decide automaticamente:
- Rotas com o parâmetro disponível:
⚠ Observação: a otimização pode aumentar ou reduzir o tamanho final do arquivo, dependendo da complexidade do PDF original.
4. Otimização via Painel
O Plugsign disponibiliza a opção "Otimizar PDF" através do painel para ajustar a compatibilidade de documentos:
- Basta abrir o documento que deseja otimizar
-
Navegar até: Opções > Otimizar PDF
-
Depois basta ir em Continuar
-
Após a mensagem "Arquivo pronto!" isso o documento estará otimizado
5. Boas práticas para geração de PDFs assináveis
5.1. Softwares de escritório
-
Microsoft Word / LibreOffice / Google Docs
- Exportar em PDF sem otimização avançada.
- Evitar “Reduzir tamanho” ou “Otimizar para web”.
- Quando possível, exportar como PDF/A (ISO 19005-1).
5.2. Bibliotecas de geração em sistemas
- TCPDF – recomendado, gera PDFs nativos compatíveis.
- FPDF + FPDI – compatíveis, desde que compressão de objetos esteja desativada.
- mPDF – pode gerar PDFs válidos, mas nem sempre estável para assinatura digital (recomenda-se testes prévios).
- iText (Java/.NET) – totalmente compatível, usado em projetos corporativos.
5.3. Conversão e tratamento
- Ghostscript – útil para normalizar PDFs problemáticos (mesma tecnologia utilizada no nosso Optimizer).
- LibreOffice (modo exportar para PDF) – gera PDFs estáveis.
- Ferramentas online não recomendadas, pois muitas aplicam compressão de objetos.
6. Recomendações finais
- Sempre que possível, gerar documentos diretamente em PDF/A.
- Evitar otimizações de terceiros antes do envio para assinatura.
- Se o documento contiver problemas, ativar o
optimizer=1na API. - Padronizar os fluxos internos de geração de PDF, escolhendo bibliotecas confiáveis (TCPDF, FPDF/FPDI, iText).
- Testar periodicamente PDFs gerados para garantir conformidade com assinaturas digitais.
7. Referências técnicas
- ISO 32000-1: PDF 1.7 Specification
- ISO 19005: PDF/A Standard for Archiving
- Adobe Technical Note #5071: Digital Signatures in PDF
Comentários
0 comentário
Por favor, entre para comentar.