ae galera…
estou com um problema na hora de imprimir um pdf…
estoou utilizando o ireport…
ele n da erro…
o pdf ao invés de abrir com o acrobat…
ele imprime isso:
%PDF-1.4 %âãÏÓ 3 0 obj <>stream x�ÅYMsÓ0½ûWèWß�¹µ¥íÀ Ði;½0<¶IÝQÆIá÷2�8óa?[Q[Vã¦mú6yÒJÙÕ[IÆà}tv!
meu codigo é o seguinte
public void relatorioDeEstado(){
ClienteDAO bd = new ClienteDAO();
ArrayList<AuxHelp> lista= bd.taTudoDoido();
String caminho = "/reports/relatorio.jrxml";
try{
JSFUtil.imprimirPDF(lista, caminho);
}catch (Exception e) {
e.printStackTrace();
}
}
codigo JSFUtil.imprimirPDF(lista,caminho)
@SuppressWarnings("unchecked")
public static void imprimirPDF(List lista,String caminho){
FacesContext context = JSFUtil.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) Utility.getServletResponse();
Map parameters = new HashMap();
InputStream reportStream = JSFUtil.class.getResourceAsStream(
caminho);
JasperDesign jasperDesign = null;
try {
jasperDesign = JRXmlLoader.load(reportStream);
} catch (JRException e) {
System.out.println(e.getMessage());
}
JasperReport jasperReport = null;
try {
jasperReport = JasperCompileManager.compileReport(jasperDesign);
} catch (JRException e) {
System.out.println(e.getMessage());
}
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(
lista);
JasperPrint jasperPrint = null;
byte[] arquivoPDF = null;
try {
jasperPrint = JasperFillManager.fillReport(jasperReport,
parameters, ds);
} catch (JRException e) {
System.out.println(e.getMessage());
}
// método para exportar o relatório para PDF
try {
arquivoPDF = JasperExportManager.exportReportToPdf(jasperPrint);
} catch (JRException e) {
e.getMessage();
}
response.setContentType("application/pdf");
response.setContentLength(arquivoPDF.length);
try {
response.getOutputStream().write(arquivoPDF);
response.getOutputStream().flush();
} catch (IOException e) {
e.printStackTrace();
}
