📋 Resumo do artigo
Este artigo explica como garantir que um PDF esteja no formato correto para ser assinado digitalmente no Assina Simples. Aborda problemas comuns, o recurso de Otimização de PDF (via painel e API) e as melhores bibliotecas para geração de PDFs assináveis.
1. Por que o formato do PDF importa?
A assinatura digital de documentos PDF depende da estrutura interna do arquivo. Para que um PDF possa ser assinado digitalmente, ele precisa atender a três requisitos técnicos fundamentais:
| Requisito | O que significa |
|---|---|
| Inserção incremental | O PDF deve permitir a inclusão de assinaturas sem reescrever o arquivo inteiro |
| Sem Object Streams | Não pode usar compressão de objetos (ObjectStream) que bloqueie a adição de campos de assinatura |
| Padrão ISO 32000-1 | Deve seguir as normas do formato PDF 1.7 (ou superior), definidas pela ISO |
Quando o PDF é gerado fora desse padrão, a assinatura pode falhar ou o documento pode ficar inválido após assinar. É fundamental enviar PDFs compatíveis ao Assina Simples.
2. Problemas Comuns em PDFs Gerados por Terceiros
| Problema | Impacto |
|---|---|
| Object Streams / Cross-Reference Streams | Tornam mais difícil inserir novos objetos de assinatura. Gerados por algumas ferramentas de otimização. |
| Otimização agressiva para web | "Salvar como PDF otimizado para web" em muitos editores remove informações necessárias para a assinatura incremental. |
| Imagens pesadas / alta resolução | Geram PDFs muito grandes, que podem precisar ser reprocessados pela API para garantir compatibilidade. |
| Proteção, criptografia ou senha | Bloqueiam completamente qualquer tentativa de assinatura. O PDF protegido precisa ser desbloqueado antes. |
3. Como Otimizar um PDF pelo Painel do Assina Simples
O Assina Simples disponibiliza a opção "Otimizar PDF" diretamente no painel, sem necessidade de conhecimento técnico. Siga os passos abaixo:
Abra o documento que deseja otimizar dentro do painel do Assina Simples
Clique no botão "Opções" no canto superior direito do documento
Selecione a opção "Otimizar PDF" no menu dropdown
Clique em "Continuar" na janela de confirmação
Aguarde até ver "Arquivo pronto!" — NÃO feche a janela durante o processo
A otimização é irreversível: todos os campos de formulário serão convertidos em texto e dados inválidos podem ser apagados. Certifique-se de manter uma cópia do arquivo original antes de otimizar.
4. Otimização via API (Para Desenvolvedores)
A API do Assina Simples disponibiliza o parâmetro optimizer para controlar como o PDF será processado antes da assinatura:
| Parâmetro | Comportamento |
|---|---|
optimizer = 1 | Ativa a otimização obrigatória via Ghostscript — garante compatibilidade independentemente do estado do arquivo. |
optimizer = 0 | O PDF será assinado apenas se já estiver em um padrão compatível. Retorna erro se estiver fora do padrão. |
| Sem parâmetro | A API decide automaticamente: se o PDF for incompatível, será otimizado; se já compatível, segue direto para assinatura. |
Para integrações com clientes que enviam PDFs de diversas origens (Word, Google Docs, LibreOffice), recomendamos omitir o parâmetro optimizer e deixar a API decidir automaticamente. Para fluxos críticos com PDFs gerados internamente e já validados, use optimizer=0 para maior controle.
5. Boas Práticas para Geração de PDFs Assináveis
Softwares de escritório
- Microsoft Word / LibreOffice / Google Docs: exportar em PDF sem otimização avançada
- Evitar "Reduzir tamanho" ou "Otimizar para web" antes de enviar para assinatura
- Quando possível, exportar como PDF/A (ISO 19005-1) — formato arquivístico ideal para assinaturas
Bibliotecas recomendadas para desenvolvedores
| Biblioteca | Compatibilidade | Observação |
|---|---|---|
| TCPDF | ✅ Compatível | Recomendado — gera PDFs nativos compatíveis |
| FPDF + FPDI | ✅ Compatível | Compatível, desde que compressão de objetos esteja desativada |
| iText (Java/.NET) | ✅ Compatível | Totalmente compatível — usado em projetos corporativos |
| LibreOffice | ✅ Compatível | Gera PDFs estáveis via linha de comando |
| Ghostscript | ✅ Compatível | Útil para normalizar PDFs problemáticos |
| mPDF | ⚠️ Testes | Pode gerar PDFs válidos, mas nem sempre estável — recomenda-se testes prévios |
| Ferramentas online | ❌ Evitar | Muitas aplicam compressão que quebra a compatibilidade |
Checklist antes de enviar um PDF para assinatura
6. Resumo — O Que Fazer em Cada Situação
| Situação | Ação recomendada |
|---|---|
| Cliente enviou PDF e a assinatura falhou | Acesse Opções > Otimizar PDF no painel e tente novamente |
| PDF gerado por Word / Google Docs | Exportar sem "otimizar para web". Se falhar, usar o Otimizador |
| Integração via API com PDFs de diversas origens | Omitir o parâmetro optimizer — a API decide automaticamente |
| PDF está protegido com senha | Remover a proteção antes de enviar para assinatura |
| Novo sistema gerando PDFs para assinatura | Utilizar TCPDF, FPDF/FPDI ou iText como biblioteca padrão |