Formulário PDF com cálculo: como preencher sem perder a conta
Como saber se o total de um formulário PDF calcula, por que o AjustaPDF não roda o script de cálculo e em que ordem achatar sem perder a conta.
Um formulário PDF com cálculo automático tem campos que somam ou multiplicam outros campos, e essa conta é um pequeno script guardado no próprio arquivo. O preenchimento do AjustaPDF grava os valores que você digita nos campos, mas não executa esses scripts, então o campo de total fica como estava. A conta é feita pelo leitor que tem suporte a JavaScript de formulário.
Onde fica a conta
Um formulário PDF tem campos, e cada campo pode ter ações associadas: calcular, formatar, validar (campo obrigatório, máscara de CPF e ordem do Tab estão em formulário PDF obrigatório, formato e ordem do Tab). A ação de calcular é um trecho de JavaScript que o leitor executa sempre que um campo de origem muda. O campo de total não guarda a soma; ele guarda o script que a produz, e o resultado aparece só quando um leitor roda esse script.
Para saber mais sobre esses scripts e por que alguns leitores os bloqueiam, veja JavaScript dentro do PDF. Por isso o mesmo arquivo pode mostrar totais diferentes em leitores diferentes. Um leitor que roda o script preenche a soma enquanto você digita. Um leitor sem suporte mostra o campo vazio, ou mostra o último valor salvo, se ele existir. O arquivo é o mesmo; o que muda é quem executa a conta.
O que acontece no site
O preenchimento grava, para cada campo, o valor que você digitou, identificando o campo pelo nome. Ele também pode achatar o formulário, que desenha cada resposta na página. O motor não tem código para avaliar os scripts de campo, e o editor da ferramenta também não calcula nada. Então, se um campo de total existe e tem script, o valor que você vê no editor vem apenas do que foi digitado nos outros campos.
Isso não é um defeito do arquivo, é uma escolha de quem monta o formulário. Muitos formulários de órgãos e empresas têm cálculo, e o certo é ler o resultado final no leitor oficial antes de enviar, nunca confiar só no que aparece no editor.
Como verificar em cinco minutos
Um teste simples mostra se o cálculo funciona no seu formulário. Siga estes passos, nessa ordem:
- Abra o arquivo original no Adobe Acrobat Reader ou no Foxit, que executam os scripts de formulário.
- Digite valores de teste nos campos que entram na conta, usando valores cuja soma você conhece de cabeça.
- Confira o total. Ele deve mostrar a soma que você já sabe. Se ficar vazio ou não mudar, o cálculo não roda nesse leitor.
- Confira no editor do site. Se o total não aparece lá e aparece no leitor oficial, o valor é calculado pelo leitor e você precisa dele preenchido antes de achatar.
Se o total não aparece em nenhum leitor, o cálculo pode estar quebrado no formulário, ou o campo é só um espaço para você escrever. Nesse caso, some à mão e confira duas vezes, porque o leitor não vai fazer isso por você.
Achatar: quando e em que ordem
Achatar um formulário desenha as respostas na página e remove os campos. Quem recebe vê exatamente o que você preencheu, em qualquer leitor, e não consegue mudar a resposta clicando no campo. Muitos sistemas de envio pedem o formulário achatado, justamente para que nada seja alterado depois.
A consequência é direta: depois de achatar, o script não roda mais, porque o campo não existe. Por isso a ordem importa. Primeiro preencha, depois confira o total no leitor oficial, e só então achate. Se você achatar um formulário com o total vazio, o total continua vazio no arquivo final, e para corrigir é preciso voltar ao original e preencher de novo.
| Situação | O que acontece | O que fazer |
|---|---|---|
| Total vazio num leitor sem suporte | Campo não calcula | Preencher no Acrobat Reader ou no Foxit |
| Achatar antes de calcular | Total vira texto fixo, com o valor que estava | Calcular e conferir antes de achatar |
| Formulário com camada XFA | A camada XFA é removida; os campos comuns ficam | Conferir se os campos comuns mostram os valores |
| Escaneado sem campos | Não há campo para preencher | Escrever por cima das linhas com editar PDF |
Formulários antigos do Adobe
Alguns formulários foram feitos no Adobe LiveCycle e trazem uma camada XFA, que só o Adobe Reader mostra. O site remove essa camada ao preencher, e os campos comuns que ficam por baixo são os que outros leitores exibem. Se o seu formulário depende da camada XFA para calcular, a conta pode não aparecer depois da remoção. Teste antes, usando o leitor oficial do órgão ou da empresa quando houver um. A diferença entre os dois tipos de formulário está em AcroForm e XFA. Para testar outro leitor, veja Foxit Reader ou Adobe Reader para preencher formulário.
O guia sobre formulário em PDF que não salva o preenchimento trata do caso em que os valores somem ao salvar, e o guia sobre achatar PDF de formulário explica o que muda no arquivo.
Conferir antes de enviar
Um formulário com cálculo é responsabilidade de quem envia. Antes de mandar, abra o arquivo final num leitor diferente do que você usou para preencher, confira cada soma e cada campo obrigatório, e guarde uma cópia do formulário preenchido. Se o destino recusar o arquivo ou receber o formulário sem as respostas, o guia PDF preenchido chega vazio lista as causas, e a cópia mostra exatamente o que foi enviado.
Para preencher e salvar com as respostas fixas, use a ferramenta de preencher PDF. Se o formulário tem muitos campos de cálculo e o total é o que importa, o caminho é conferir a soma num leitor oficial e só então escolher entre manter os campos editáveis ou achatar. Para editar o texto em volta dos campos, a ferramenta de editar PDF cobre o caso.
Perguntas frequentes
Por que o campo de total do meu formulário PDF não se preenche sozinho?
Porque a conta fica num script guardado no campo, e esse script só roda em leitores com suporte a JavaScript de formulário, como o Adobe Acrobat Reader e o Foxit. O preenchimento do AjustaPDF grava os valores que você digita, mas não executa o script, então o total fica como estava.
Como sei se um formulário PDF tem cálculo automático?
Abra o arquivo no Adobe Acrobat Reader ou no Foxit, digite um valor num dos campos que entram na conta e veja se o total muda. Se o total não muda, ele não tem cálculo, ou o leitor não está executando o script. Nas propriedades do campo do total, procure a aba de cálculo.
Posso achatar o formulário depois de calcular o total?
Pode, e essa é a ordem certa quando o total precisa ficar fixo. Achatar transforma os valores em texto da página e remove os campos, então o cálculo não roda mais depois. Preencha, confira o total no leitor e só então achate.
Um formulário escaneado pode ter cálculo?
Não. Um escaneado é só uma imagem, sem campos nem scripts. Para escrever valores nele, use a ferramenta de editar PDF e escreva por cima das linhas. A soma, nesse caso, é feita à mão e conferida antes de enviar.