Carregamento dinâmico (usando tag Object ou Iframe) e impressão  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
legionarioba
JavaTeenager
[Avatar]

Membro desde: 24/03/2003 00:40:42
Mensagens: 171
Localização: Salvador
Offline

Bom dia,

Tenho o seguinte problema: tenho uma aplicação web, em que eu preciso imprimir um pdf que eu gero via jasperreports. O problema é o seguinte, normalmente nas telas do sistema, ao clicar no botão de gerar relatório, eu abro um popup, em que a url é a servlet que implementa a minha abstração do JAsper, onde eu devolvo um array de bytes pra tela e um pdf é apresentado. A questão é que tenho um relatório de emissão de carteiras, em que eu não posso abrir o popup, porque é um relatório com formulário pré-impresso, a única coisa que tenho no meu layout do relatório sã os dados posicionados. A execução correta da tela seria clicar no botão de imprimir, e ele já abrir a janela com as configurações de impressão, mas de forma escondida. Consegui fazer isso usando iframe, só que o print() que executo imprime apenas o conteúdo visível da página



Pesquisei sobre a tag object, poderia fazer algo assim, no corpo da página eu insiro:



Onde classid é o objeto que abre o Acrobat dentro do IE. O problema é que eu não consigo setar o valor de src via Javascript fazendo:

document.getElementById("PDF").src=minhaUrlDinamica;

O pior é que pelo que vi esse OBJECT seria a única alternativa, pois com a atribuição do parÂmetro src de forma estática, e chamando:

document.getElementById("PDF").print();

Eu consigo gerar a caixa de diálogo de impressão do próprio PDF, e ai consigo visualizar e imprimir o conteúdo mesmo que eu defina height e width na tag object como 0. Alguém tem uma luz sobre como definir dinamicamente(ou se é possível) o valor do parÂmetro src nessa tag?

Abraços,

Silvio Luiz

http://silvioluiz.wordpress.com
[Email] [MSN]
legionarioba
JavaTeenager
[Avatar]

Membro desde: 24/03/2003 00:40:42
Mensagens: 171
Localização: Salvador
Offline

Consegui!

Foi suado..foi quase inédito..hehe, mas eu consegui, achei tão escasso de exemplos que preferi que chegasse à noite pra detalhar mais a solução. Fui direto na fonte , e verifiquei que para o caso de estar dentro de uma aplicação Web, é necessário defiinir na tag param o valuetype=ref, de modo que eu possa utilizar uma URI como value.

No javascript, é preciso atenção com a url pois só conseguir setar o value do object configurando a url completa. Segue o código...

No js:



No jsp:



Após 5 segundos...ele abre a caixa de diálogo do pdf, realmente foi linda essa...hehe


[]'s

Silvio Luiz

http://silvioluiz.wordpress.com
[Email] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team