Others

Você pode adicionar lógica e regras condicionais aos campos de formulário PDF

Você está criando um formulário PDF para entrada de clientes. Se o cliente selecionar "Individual" conforme o tipo de conta, o formulário deverá conter campos para nome e CPF. Se selecionarem "Negócios" o formulário deve mostrar campos para o nome da empresa e o número de identificação do empregador. Em um formulário de papel, você imprimiria ambas as seções e escreveria "Se aplicável" ao lado de cada um. Em um PDF digital, a lógica condicional pode ocultar completamente a seção irrelevante, mostrando ao usuário apenas os campos que ele realmente precisa preencher.

A lógica condicional em formulários PDF é real e funcional, mas apresenta ressalvas importantes. Ao contrário dos formulários web, onde JavaScript e CSS fornecem controle flexível sobre visibilidade e layout, a lógica condicional do PDF é limitada pela implementação limitada de JavaScript do formato PDF e pela maneira inconsistente como diferentes visualizadores de PDF executam scripts. Entender o que é possível e o que não é impede que você crie um formulário que funcione em seu ambiente de teste, mas que seja quebrado para metade dos destinatários.

Can You Add Conditional Logic and Rules to PDF Form Fields

O que a lógica condicional em um formato PDF pode realmente fazer

A lógica condicional do PDF é executada no Acrobat JavaScript, uma versão simplificada do JavaScript que faz parte da especificação do PDF desde o início dos anos 2000. Ele pode mostrar ou ocultar campos de formulário com base na entrada do usuário. Ele pode ativar ou desativar campos, alterar sua cor ou borda, marcá-los como obrigatórios ou opcionais e preencher seus valores a partir de tabelas de pesquisa. Ele pode validar a entrada conforme o usuário digita, exibir mensagens de aviso e acionar cálculos quando determinadas condições forem atendidas.

O que não pode fazer é reestruturar o layout da página. Ocultar um campo remove-o da visualização, mas o espaço que ocupava permanece. Os campos abaixo não deslizam para cima para preencher a lacuna. A página não reflui. Esta é a maior diferença entre um Formulários PDF e um formulário da web, e é a fonte de maior decepção quando alguém tenta replicar uma experiência de formulário da web dentro de um PDF. Se a sua lógica condicional precisar alterar drasticamente o layout da página, um PDF é a ferramenta errada. Se for necessário mostrar ou ocultar alguns campos em um layout fixo, a lógica condicional do PDF lida bem com isso.

WukongPDF

Experimente Editar PDF

Nenhuma instalação necessária. Funciona diretamente no seu navegador.

Começar agora →

Como configurar uma regra de mostrar-ocultar com base em um menu suspenso ou seleção de caixa de seleção

O padrão condicional mais comum é um menu suspenso ou conjunto de botões de opção que controla quais campos subsequentes ficam visíveis. No editor de formulário WukongPDF, comece criando o campo de controle, o menu suspenso ou grupo de botões de opção cujo valor determina o que acontece a seguir. Dê a ele um nome claro como “accountType”. Em seguida, crie todos os campos que podem ser mostrados ou ocultados. Todos os campos possíveis precisam existir no formulário desde o início. A lógica condicional controla apenas a visibilidade. Não cria nem destrói campos.

Com os campos criados, abra as propriedades do campo de controle e localize a aba do evento Validate ou On Blur. É aqui que você escreve o JavaScript que responde à seleção do usuário. Um script simples de mostrar-ocultar se parece com isto: var choice = event.target.value; this.getField("ssnField").display = (choice === "Individual") ? display.visible: display.hidden; this.getField("einField").display = (choice === "Negócios") ? display.visible: display.hidden; Quando o usuário altera o menu suspenso, o script é executado, verifica o valor selecionado e define a propriedade de exibição de cada campo como visível ou oculta.

Um detalhe importante: defina o estado inicial de todos os campos condicionais para corresponder ao valor padrão do campo de controle. Se o padrão do menu suspenso for "Individual" o campo SSN deve começar visível e o campo EIN deve começar oculto. Se os campos começarem no estado errado, o usuário verá ambos ou nenhum até interagir com o menu suspenso pela primeira vez, que parece quebrado. O estado inicial e a lógica do script devem concordar.

Regras de validação que verificam a entrada antes do usuário prosseguir

A lógica condicional vai além da visibilidade até a validação de entrada. Um campo de data pode verificar se a data inserida está dentro de um intervalo aceitável. Um campo de email pode verificar se a entrada contém um sinal @ e um domínio. Um campo de número de telefone pode exigir exatamente dez dígitos. Os scripts de validação são executados no evento Validate do campo, que é acionado quando o usuário tenta sair do campo. Se o script chamar event.rc = false, o foco permanecerá no campo e o usuário não poderá prosseguir até que a entrada seja corrigida.

Uma validação prática de telefone é semelhante a esta: var phone = event.value.replace(/\s|-|\(|\)/g, ''); if (phone !== "" && !/^\d{10}$/.test(phone)) { app.alert("Insira um número de telefone de 10 dígitos."); evento.rc = falso; } Esse script remove espaços, travessões e parênteses e verifica se os caracteres restantes têm exatamente dez dígitos. Se o campo estiver vazio, a validação será aprovada, pois nem todos os campos de telefone são obrigatórios. Se o campo tiver conteúdo, mas não tiver dez dígitos, o script mostrará uma mensagem de alerta e impedirá que o usuário saia do campo.

As regras de validação devem ser usadas com moderação e com mensagens de erro claras. Um formulário que bloqueia o usuário em todos os campos com alertas enigmáticos cria frustração. Um formulário que valida apenas os campos onde uma entrada incorreta causaria problemas reais e explica o que o usuário precisa corrigir cria confiança. O texto do alerta deve indicar exatamente o que está errado e como corrigi-lo. "Entrada inválida" é inútil. "O número de telefone deve ter 10 dígitos sem espaços ou travessões" diz ao usuário o que fazer.

O problema de compatibilidade do visualizador e como contorná-lo

PDF JavaScript é compatível com Adobe Acrobat Reader, Acrobat Pro e na maioria dos aplicativos PDF de desktop. Não é compatível com a maioria dos visualizadores de PDF baseados em navegador, incluindo o visualizador integrado do Chrome, o PDF.js do Firefox e a visualização do Safari. É parcialmente suportado em alguns aplicativos PDF móveis e completamente ausente em outros. Se o seu formulário depende de lógica condicional e scripts de validação, e o destinatário o abre em um visualizador que não executa JavaScript, ele verá todos os campos, incluindo aqueles que devem ser ocultos, e nenhuma das regras de validação será acionada.

Não existe uma solução técnica perfeita para isso. A melhor abordagem é uma combinação de rotulagem clara e uma instrução em destaque no topo do formulário. Rotule as seções condicionais com suas condições de acionamento: "Se você selecionou Negócios acima, preencha esta seção." Dessa forma, mesmo que o script falhe, o usuário poderá seguir o formulário manualmente. A experiência do PDF interativo se degrada graciosamente em uma forma estática utilizável, em vez de se tornar incompreensível.

Testando formulários condicionais em vários visualizadores

Antes de distribuir um formulário PDF condicional, teste-o em pelo menos quatro ambientes: Adobe Acrobat Reader no desktop, o visualizador de PDF integrado do Chrome, o visualizador Safari ou Preview PDF no Mac e um visualizador de PDF móvel no iPhone e no Android. Em cada ambiente, trabalhe o formulário sistematicamente. Altere as seleções suspensas e verifique se os campos corretos aparecem e desaparecem. Insira dados inválidos e confirme se as mensagens de validação aparecem e impedem o envio. Salve o formulário e abra-o novamente para verificar se o estado salvo é consistente.

Para formulários direcionados a um público conhecido, como formulários internos da empresa ou formulários enviados por meio de um portal específico, teste apenas os visualizadores que seu público realmente usa. Se todos na sua organização usam o Adobe Acrobat, a compatibilidade do navegador é irrelevante. Se o seu formulário for postado em um site público e aberto por qualquer pessoa em qualquer dispositivo, presuma que uma porcentagem significativa de usuários verá o formulário sem JavaScript. Projete o formulário para funcionar de forma aceitável nesse estado degradado, com todos os campos visíveis e todas as instruções claras, e deixe a lógica condicional ser um aprimoramento e não um requisito.

Quando a lógica condicional pertence a um formulário da Web

Se o seu formulário precisar de assistentes de várias etapas, criação dinâmica de campos, validação de servidor em tempo real ou refluxo de página quando os campos aparecem e desaparecem, um formulário web é a ferramenta certa, não um PDF. Os formulários PDF são documentos estáticos com melhorias interativas. Os formulários da Web são aplicativos interativos com saída semelhante a um documento. A distinção é importante porque construir um formulário condicional complexo em PDF, apenas para descobrir que metade do seu público não consegue usá-lo como pretendido, é um erro frustrante e demorado.

Uma abordagem híbrida prática é usar um formulário web para coleta de dados e lógica condicional e gerar um PDF a partir dos dados enviados para assinaturas, arquivamento e compartilhamento. O Editor de PDF de WukongPDF funciona bem neste fluxo de trabalho: colete os dados por meio de um formulário da web, preencha um modelo de PDF com as respostas e entregue o PDF aprimorado ao usuário para seus registros. O formulário da web cuida da lógica. O PDF cuida da apresentação. Cada ferramenta faz o que faz de melhor.

WukongPDF

Experimente Editar PDF

Nenhuma instalação necessária. Funciona diretamente no seu navegador.

Começar agora →