Imprimir formulários em PDF?

Pois é, mesmo tendo essa tecnologia por trás do PDF em que é possível instruir o preenchimento de um formulário e até envia-lo por email, as vezes ainda se faz necessário a impressão desses documentos.

Imagine o seguinte, você fez um formulário bem bacana, dinâmico e com regras de validações. Mas se a pessoa que for preencher clicar no menu File->Print, pronto. Ela vai imprimir mesmo se tiver erros de preenchimento.

Para evitar isso você precisa usar o evento prePrint para validar o formulário, e só depois fazer a impressão. Caso o formulário não esteja preenchido corretamente, use a instrução cancelAction para cancelar a impressão.

Vamos lá?

Em todos os campos que são obrigatórios de preenchimento, deverá ser feito a seguinte ação: Selecione o campo e depois vá na aba Object->Value->Type. Deve estar como Required. Coloque também uma mensagem de aviso. Também é possível controlar os níveis de validação e das mensagens de aviso, quando um campo não for preenchido. Para isso clique logo abaixo, em Form Level Validation Settings.

Validar PDF antes da Impressão

Validar PDF antes da Impressão

Depois só seguir a imagem abaixo, sacou?

Validar PDF antes da Impressão

Validar PDF antes da Impressão

O que eu fiz:

Coloquei dois campos no meu formulário + um botão de impressão. Configurei o primeiro campo como sendo obrigatório e o segundo deixei opcional. No evento prePrint do botão eu coloquei a seguinte instrução:

if(!xfa.form.form1.execValidate()){

       xfa.event.cancelAction = 1;

}

Pronto. Quando clicar no botão, antes de tentar a impressão o Reader irá executar essa instrução, que dispara o evento validate do formulário e, caso retorne FALSO (existem campos a serem preenchidos), a impressão é cancelada.

Clique aqui para fazer download do PDF que fiz nesse post.

É isso.

Anúncios

5 Responses to “Imprimir formulários em PDF?”


  1. 1 Kleber C. S. Coelho terça-feira, 14 junho, 2011 às 5:54 pm

    Bloquear impressão de formulário PDF incompleto.

    Boa tarde Diego, tudo bem?

    Primeiramente parabéns pela iniciativa do site, revirei a internet procurando esse recurso e só encontrei no seu site (https://diegosi.wordpress.com/2010/12/14/imprimir-formularios-em-pdf/).
    Sou iniciante e uso o Adobe Acrobat 9 Pro, não sei nada pra ser sincero, e não encontrei o item “Form Level Validation Settings.” e, por conta disso, acho que não consegui fazer o procedimento.
    Pois bem, me surgiram algumas dúvidas.

    1. Sabe me dizer onde fica a opção Form Level Validation Settings no Adobe Acrobat 9? (Live Cycle ES 8.2) para que eu possa terminar a validação do meu formulário?

    2. Baixei o PDF que o senhor disponibilizou no site, no Adobe Reader funcionou perfeitamente, porém no Foxit Reader, ele imprime mesmo que os campos estejam em branco. Sabe se existe uma forma de bloquear também no Foxit?

    Muito obrigado, abraços,

    Kleber C. S. Coelho

    • 2 Diego Silva quinta-feira, 16 junho, 2011 às 11:10 am

      Fala Kleber!

      Seguinte, tenta atualizar para a versão mais recente do LC Designer. Se eu não estiver enganado, essa configuração só tem na versão mais recente, que é a 9.

      Aliás, o LC Designer é uma aplicação totalmente diferente do Acrobat. Só vem no mesmo pacote, mas é totalmente independente. Então se você baixar o LiveCycle Workbench, o LiveCycle Designer também vem junto.

      Sobre o FoxIt, não é possível. Apesar do PDF ser um formato aberto (ISO 32000) não é todas as implementações que seguem a risca. Um exemplo é o FoxIt.

      Uma analogia fácil de entender, é como se fosse construir sites para funcionar no Internet Explorer 5. Hoje não dá mais heheheheh

      Espero ter ajudado, qualquer coisa dá um grito!

  2. 4 Rodrigo segunda-feira, 19 dezembro, 2011 às 4:00 pm

    Olá, gostei das dicas, mas tenho uma dúvida. tenho um formulário pre-impresso e scaneado. gostaria de fazer um formulario pdf e que seja impresso somente os campos sem o fundo, existe essa possibilidade?


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s





%d blogueiros gostam disto: