Achatar um PDF
no navegador.
Bloqueie campos de formulário interativos e anotações em imagens estáticas. Os destinatários veem os valores mas não conseguem alterá-los. Sem upload.
Verifique você mesmo: abra o DevTools → aba Network → solte um arquivo. Veja zero uploads acontecerem.
Três passos. Seu arquivo nunca sai desta aba.
Solte o PDF preenchido
Escolha o formulário preenchido. Ele carrega na memória do navegador, não em um servidor.
Clique em Achatar
Incorporamos os valores dos campos e as anotações à própria página, removendo a camada interativa.
Baixe a cópia bloqueada
O resultado parece idêntico, mas os destinatários não podem alterar os valores. O original fica intacto.
Cozer o formulário na página
As razões pra achatar (flatten) um PDF normalmente são pra congelar o que está visível agora. Um formulário de imposto preenchido digitando no PDF vai pro contador — o destinatário precisa ver as respostas mas não conseguir editar. Um acordo assinado foi finalizado com um campo de assinatura preenchido — encaminhando, o campo não pode continuar sendo um elemento clicável que alguém sobrescreva. Um documento escaneado voltou com anotações e carimbos e precisa circular pra um público mais amplo sem que a camada de anotações fique editável. Um folheto pra impressão foi diagramado no InDesign com widgets de formulário interativos que precisam aparecer como placeholders estáticos quando montados pra impressão. A tarefa aqui é pequena e previsível: pegar um PDF com campos de formulário ou anotações e converter o estado visual atual deles em conteúdo permanente da página.
O que volta é um PDF que parece igual na tela mas não tem mais elementos interativos. Cada campo preenchido mantém seu valor como texto estático. Cada campo vazio vira o que o fundo dele mostrava (frequentemente um retângulo cinza, às vezes nada visível). Anotações e carimbos cozem do mesmo jeito na página.
O que o flatten realmente faz
O PDF guarda os campos de formulário como uma camada separada por cima da página. A página em si não sabe nada do conteúdo do formulário; o widget do campo fica por cima na hora de visualizar e o valor atual é renderizado na área visível. Achatar colapsa essa camada — percorre cada campo, captura o estado visual no momento da operação, desenha esse snapshot como conteúdo normal da página (texto, linhas, checkboxes como traços) e depois remove a definição do formulário em si.
O resultado é uma única página estática contínua onde o visível é o que está desenhado. Não tem mais «formulário» no documento. O leitor não consegue saber que existiram campos, e nenhuma ferramenta PDF consegue reeditar os valores sem OCR da página do zero.
O que achata e o que não
- Campos de formulário (AcroForm). Caixas de texto, checkboxes, botões de rádio, dropdowns, listbox, campos de assinatura, botões. Tudo isso achata — o valor atual ou seleção vira conteúdo estático.
- Campos vazios mantêm a aparência. Uma caixa de texto não preenchida mantém a borda e (frequentemente) uma linha de placeholder; esse visual fica como formas desenhadas. Uma checkbox desmarcada fica como quadradinho vazio.
- Campos calculados capturam o valor atual. Campos com fórmulas (recurso do Acrobat Pro) congelam no valor que mostram — a fórmula some depois do flatten.
- Anotações podem ou não achatar. Notas de comentário, marcações e carimbos dependem do visualizador que escreveu eles; o form.flatten() do pdf-lib mira em AcroForm especificamente. Se você precisa que as anotações também sumam, o caminho certo é exportação completa do visualizador de origem.
- Conteúdo estático existente não é tocado. Texto, imagens, diagramação, marcadores são levados sem mudança.
O que sobrevive e o que não
- O conteúdo visível fica igual. Texto, imagens, diagramação, fontes e valores do formulário do jeito que apareciam na hora do flatten — preservados exatamente.
- Marcadores, links, estrutura de página são levados. O flatten mira na camada do formulário, não na estrutura do documento.
- A interatividade do formulário some. Sem mais campos clicáveis, seleções de dropdown, «tab pro próximo campo». Esse é o ponto da operação.
- Assinaturas digitais ficam inválidas. Qualquer modificação no documento, incluindo flatten, quebra os vínculos da assinatura. Se um documento está assinado e a assinatura precisa continuar válida, não achata — duplica o arquivo e achata a cópia.
- A operação é unidirecional. Depois de achatado, não tem «desachatar». A definição do formulário foi embora. Pra reeditar, teria que recriar os campos do zero num editor PDF que suporte autoria de formulários.
Se algo parecer estranho
- «Não aconteceu nada» — sem campos pra achatar. O PDF não tinha AcroForm. A ferramenta nesse caso salva de novo o arquivo como está; o resultado é funcionalmente idêntico à entrada. Pra checar se tem campos, abre no Adobe Reader e olha «Realçar campos existentes» — se nada aparece, não tem nada pra achatar.
- Algumas anotações não cozeram. A passagem form.flatten() achata só widgets AcroForm. Os overlays de anotação (post-its, marcador, desenho à mão livre) precisam de outra operação. Pra eles, reexporta do visualizador original ou consolida primeiro via edit-pdf.
- Os valores preenchidos parecem errados depois do flatten. A representação achatada captura o que estava desenhado no momento. Se o formulário tinha substituição de fonte ou um campo que aparecia diferente do esperado, o bake captura isso. Confere a fonte primeiro num visualizador — o flatten vai preservar o que você vê lá.
- O PDF está criptografado. Passa primeiro pelo unlock-pdf; PDFs criptografados não são modificados.
Razões comuns pra achatar
- Mandar um formulário preenchido pra alguém que não deve editar. Declarações fiscais pro contador, contratos pro jurídico, formulários de RH — achatar trava os valores.
- Combinar formulários preenchidos num documento de arquivo único. Várias cópias do mesmo formulário preenchidas por pessoas diferentes, juntadas num pacote. Achata cada uma antes de juntar pra cada cópia manter seus valores sem colisão de IDs de campo.
- Preparar pra impressão ou distribuição pública. PDFs impressos não respeitam interatividade de qualquer jeito, mas um visualizador que abre o arquivo antes de imprimir pode mostrar os campos diferente do output impresso. Achata antes pra garantir que tela e página batem.
- Tirar comportamento preenchível de um template. Template criado com valores de exemplo nos campos, pronto pra entregar como exemplo finalizado. O flatten congela os valores de exemplo.
Notas práticas
- Achata por último. Se também precisa adicionar numeração de página, marca d'água ou compressão — faz essas operações primeiro enquanto o documento ainda é editável. Achatar uma vez fecha mudanças que dependem de consciência do formulário.
- Mantenha o original. A versão achatada substitui funcionalidade que não volta. Salva a fonte editável caso precise atualizar valores depois, aí achata de novo.
- Testa primeiro numa página. Se o documento é grande e você não tá certo de como o bake vai ficar, separa uma página de amostra via split-pdf, achata a amostra, confere o resultado num visualizador, aí achata o documento todo.
- O arquivo original fica intacto. O que você baixa é um PDF achatado novo; a fonte em disco não muda.
O que acontece com seu arquivo
O achatamento roda no seu navegador. Abra o DevTools e veja a aba Network durante a operação — nenhuma requisição saindo com conteúdo do arquivo. O PDF fica no disco; a versão achatada é um download novo ao lado.
Perguntas frequentes
O que significa achatar?
Achatar converte camadas interativas — campos de formulário, anotações, comentários — em conteúdo estático. Visualmente nada muda, mas os valores passam a fazer parte da página e não podem mais ser editados.
Por que achatar um PDF?
Para enviar uma cópia final não editável: contrato assinado, formulário fiscal preenchido, proposta revisada. O achatamento impede que os destinatários alterem os valores acidentalmente — ou de propósito.
O documento ficará diferente?
Não — páginas achatadas têm aparência idêntica à original. A mudança é estrutural, não visual: campos viram texto incorporado, anotações viram marcas incorporadas.
Funciona em PDFs sem formulários?
Sim. Se não houver campos nem anotações, o achatamento é praticamente um \"re-salvar\". É mais útil quando há campos de formulário ou notas adesivas para bloquear.
Para onde vai meu arquivo?
Para lugar nenhum. O achatamento acontece inteiramente nesta aba. Verificável em DevTools → Network: não há upload.