Pessoal de tanto procurar e fazer tudo o que achei e ainda sim não dá resultados estou eu aqui para tirar esta dúvida.
É o seguinte, tenho o relatório montado com um background e só está saindo apenas este background, nem os textos estáticos estão sendo apresentados, eu tenho o seguinte código:
public void imprimeRelatorio(String Participante, String CodVerify) throws IOException, SQLException, JRException, ClassNotFoundException {
File arquivoGerado = null;
partDao = new ParticipanteDAO();
listaDeParticipantes = partDao.getAllList();
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listaDeParticipantes,false);
HashMap parameters = new HashMap();
parameters.put("CodVerify", CodVerify);
System.out.println("MAP: "+parameters);
try {
FacesContext facesContext = FacesContext.getCurrentInstance();
String caminhorelatorio = facesContext.getExternalContext().getRealPath("relatorios");
ServletContext scontext = (ServletContext) facesContext.getExternalContext().getContext();
InputStream inst = scontext.getResourceAsStream("/relatorios/diploma.jasper");
System.out.println("Dados: "+ds.getData().isEmpty());
JasperPrint jasperPrint = JasperFillManager.fillReport(inst, parameters,ds);
System.out.println("Nome do relatório: "+jasperPrint.getName());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JRPdfExporter exporter = new JRPdfExporter();
String caminhoArquivoRelatorio = caminhorelatorio+File.separator+Participante+".pdf";
arquivoGerado = new File(caminhoArquivoRelatorio);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, arquivoGerado);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
exporter.exportReport();
arquivoGerado.deleteOnExit();
System.out.println("Fim da exportação");
byte[] bytes = baos.toByteArray();
System.out.println("Tamanho: "+bytes.length+" Bytes");
if (bytes != null && bytes.length > 0) {
System.out.println("Escrevendo bytes!");
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.reset();
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment; filename="+Participante+".pdf");
response.setContentLength(bytes.length);
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes, 0, bytes.length);
outputStream.flush();
outputStream.close();
System.out.println("Relatório gerado!");
}
facesContext.responseComplete();
}catch (Exception e){
e.getMessage();
e.printStackTrace();
}
}
Porém como já havia dito só sai a pagina em branco com o background e nem o texto estático, ja tentei até na linha 17 passando a conexão, mesmo assim não aparece. Todos esses System.out é escrito e fica assim:
Gerando relatório para: Participante
Resultado: true
MAP: {CodVerify=EE1UWR}
Dados: false
Nome do relatório: Participante
Fim da exportação
Tamanho: 42317 Bytes
Escrevendo bytes!
Relatório gerado!
Peço uma ajuda, desde já agradeço.