I’m creating an XLS report using JasperReports with code:
JRXlsExporter exporter = new JRXlsExporter(); exporter.setExporterInput(new SimpleExporterInput(compile(report))); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(stream)); SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration(); configuration.setOnePagePerSheet(TRUE); exporter.setConfiguration(configuration); exporter.exportReport();
I need to remove Software information from the xls file metadata
The result of running exiftool Vinculaciones.xls
command:
ExifTool Version Number : 12.00 File Name : Vinculaciones.xls Directory : . File Size : 5.5 kB File Modification Date/Time : 2020:06:11 15:53:33-05:00 File Access Date/Time : 2020:06:11 15:53:33-05:00 File Creation Date/Time : 2020:06:11 15:53:32-05:00 File Permissions : rw-rw-rw- File Type : XLS File Type Extension : xls MIME Type : application/vnd.ms-excel Software : JasperReports Library version 6.12.2-75c5e90a222ab406e416cbf590a5397028a52de3 Warning : Truncated property list
Advertisement
Answer
Try adding these lines:
SimpleXlsExporterConfiguration exportConfig = new SimpleXlsExporterConfiguration(); exportConfig.setMetadataApplication(""); exporter.setConfiguration(exportConfig);
This won’t remove the Software metadata field, but it would put an empty value for it. If you want to completely remove the field you’ll have to change/extend the exporter code, e.g. like this:
JRXlsExporter exporter = new JRXlsExporter() { @Override protected void openWorkbook(OutputStream os) { super.openWorkbook(os); workbook.getSummaryInformation().removeApplicationName(); } };