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