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.
Depois só seguir a imagem abaixo, sacou?
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.




