Trata-se de definir algumas extensões de arquivos que o JasperViewer poderá exportar em seu relatório.
O JasperViewer tem a propriedade JRSaveContributor[] (que contém as extensões permitidas na exportação do relatório) que será percorrida, e sua descrição comparada aos elementos do List ALLOWED_FILE_TYPES. Caso não esteja contido, o objeto do JRSaveContributor[] será removido, fazendo com que somente seja exibido as extensões PDF, WORD, XLS, RTF, HTML, CSV ao usuário.
private final String PDF = "PDF (*.pdf)"; private final String RTF = "RTF (*.rtf)"; private final String HTML = "HTML (*.htm, *.html)"; private final String XLS = "Single sheet XLS (*.xls)"; private final String CSV = "CSV (*.csv)"; private final String WORD = "DOCX (*.docx)"; private final List<String> ALLOWED_FILE_TYPES = Arrays.asList(PDF, WORD, XLS, RTF, HTML, CSV);
private void setListAllowedFileTypes(JasperViewer viewer) { Field jrViewerField; try { jrViewerField = viewer.getClass().getDeclaredField("viewer"); jrViewerField.setAccessible(true); JRViewer jrViewer = (JRViewer) jrViewerField.get(viewer); List<JRSaveContributor> saveOptions = Arrays.asList(jrViewer.getSaveContributors()); Iterator<JRSaveContributor> it = saveOptions.iterator(); while (it.hasNext()) { JRSaveContributor jsc = it.next(); if (ALLOWED_FILE_TYPES.contains(jsc.getDescription())) { continue; } else { jrViewer.removeSaveContributor(jsc); } } } catch (Exception ex) { logger.error(ex.getClass().getName(), ex); } }
Nenhum comentário:
Postar um comentário