@SuppressWarnings({"rawtypes", "unchecked"}) private static DynamicReport criaRelatorioDinamico( List<? extends Entidade> lista, String caminhoImagem) { DynamicReportBuilder relatorioBuilder = new DynamicReportBuilder(); Class<Entidade> classeEntidadeRelatorio = (Class<Entidade>) lista.get(0).getClass(); Relatorio relatorioAnnotation = classeEntidadeRelatorio.getAnnotation(Relatorio.class); if (relatorioAnnotation != null) { relatorioBuilder.setPageSizeAndOrientation(relatorioAnnotation.orientacao().getPage()); relatorioBuilder.addFirstPageImageBanner( caminhoImagem, new Integer(197), new Integer(60), ImageBanner.ALIGN_LEFT); relatorioBuilder.setReportName(obtemNomeArquivo(relatorioAnnotation)); relatorioBuilder.setTitle(obtemTitulo(relatorioAnnotation)); relatorioBuilder.setOddRowBackgroundStyle(obtemEstiloLinhaPar()); relatorioBuilder.setPrintBackgroundOnOddRows(true); relatorioBuilder.setUseFullPageWidth(true); relatorioBuilder.setDefaultStyles( getEstiloTitulo(), geraEstiloSubTitulo(), geraEstiloCabecalho(), geraEstiloDetalhe()); relatorioBuilder.addStyle(adicionaEstiloSubTitulo()); relatorioBuilder = geraColunasRelatorio(relatorioBuilder, classeEntidadeRelatorio); } else { relatorioBuilder = new ReflectiveReportBuilder(lista); } return relatorioBuilder.build(); }