Olá pessoal!!
Tenho uma aplicação desktop. Fiz um relatório no iReport e do tamanho largura 20 e altura 14 (1/2 formulario contínuo). Pois bem, quando clico no botão que abre o relatório e este abre no jasperviewer o relatório é impresso do modo paisagem. Quando abro no acrobat reader ele imprime da forma correta que é retrato. Alguém sabe como posso abrir meu relatório direto no acrobat reader.
Se eu não me engano, vc precisa abrir o pdf num popup ou fazer o download dele pra máquina…e depois vc abre da maneira tradicional…clicando 2x e tal!
Alguém me corrija se eu estiver errado
[]'s
M
mrsilvap
Minha aplicação é desktop!!!
KWill
Tente então forçar a abertura do relatorio com a classe Runtime ou a classe ProcessBuilder, que criam processos do sistema operacional.
Espero ter ajudado.
Inté
M
mrsilvap
Seria mais ou menos assim??:
packagebr.com.sstintas.controller;importjava.sql.Connection;importjava.util.Map;importcom.lowagie.text.pdf.PdfLayer;importnet.sf.jasperreports.engine.JasperExportManager;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.engine.JasperReport;importnet.sf.jasperreports.view.JasperViewer;publicclassJasperReportControllerVenda{privatestaticJasperReportjr;privatestaticJasperPrintjp;publicJasperReportControllerVenda(){super();}publicstaticvoidgeraRelatorioVendas(Connectionc,Mapparams){try{jp=JasperFillManager.fillReport("F:/implementacao/sstintas/relatorios/relatorioVenda.jasper",params,c);JasperExportManager.exportReportToPdfFile(jp,"F:/implementacao/sstintas/relatorios/relatorioVenda.pdf");Runtime.getRuntime().exec("cmd.exe start /C:/Arquivos de programas/Adobe/Acrobat 7.0/Reader/acroRd32 /p /h"+"F:/implementacao/sstintas/relatorios/relatorioVenda.pdf");//JasperViewer.viewReport(jp, false); }catch(Exceptionex){ex.printStackTrace();}}}
KWill
É mais ou menos isso no caso do Windows.
Tente usar isto aqui:
Runtime.getRuntime().exec("cmd.exe /c start /C:/Arquivos de programas/Adobe/Acrobat 7.0/Reader/acroRd32 /p /h"+"F:/implementacao/sstintas/relatorios/relatorioVenda.pdf");
Perceba o “/c” depois de “cmd.exe”.
Se não me engano, acho que você pode passar apenas o local do arquivo no sistema de arquivo como parâmetro do Runtime.exec(String command) que o SO vai tentar abrir aquele arquivo com a aplicação associada a ele e sendo assim acho que a aplicação ficará mais portável.
Espero ter ajudado.
Inté
M
mrsilvap
Kwill
Era isso mesmo!!
Valeu pela dica!!!
Salvou minha vida!!