Код ниже получает результат byte[]
, который работает для PDF и XLSX. Для HTML создается исключение.Экспорт JasperReports в формате HTML
JasperPrint jasperPrint = JasperFillManager.fillReport(report,
params, dataSource != null ? new JRMapArrayDataSource(
dataSource) : new JREmptyDataSource());
ByteArrayOutputStream out = new ByteArrayOutputStream();
@SuppressWarnings("rawtypes")
Exporter exporter;
switch (format) {
case PDF:
exporter = new JRPdfExporter();
break;
case XLSX:
exporter = new JRXlsxExporter();
break;
case HTML:
exporter = new HtmlExporter();
break;
default:
throw new ReportException("Unknown export format");
}
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(out));
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.exportReport();
return out.toByteArray();
Исключение для HTML находится в exporter.exportReport();
линии, которая говорит
java.lang.ClassCastException:
net.sf.jasperreports.export.SimpleOutputStreamExporterOutput cannot be cast to net.sf.jasperreports.export.HtmlExporterOutput
at net.sf.jasperreports.engine.export.HtmlExporter.exportReport(HtmlExporter.java:232)
ошибка одинакова для v6.0 и версии 5.6. Это использовалось для работы в версии 5.0 (некоторые из классов устарели в версии 5.6).
Как вы экспортируете отчет в различных форматах, включая HTML?
ты повторно опубликовать свой ответ?! –