我需要将报告导出到普通的html文件而不使用jasper报告的视口.
如果我&output=pdf在url中我得到一个pdf文件,&output=xls一个xls文件,但&output=html会在jasper报告的视口中显示html.我也想要一个html文件.
我怎样才能实现这一目标?我正在使用http api.
从文档
以下示例执行与上一节中显示的相同的报表,但也将4012作为输入控件参数传递并导出为PDF而不是HTML:
http://<host>:<port>/<context>/flow.html?_flowId=viewReportFlow&reportUnit=
/supermart/Details/CustomerDashboard&customerID=4012&output=pdf
Run Code Online (Sandbox Code Playgroud)
相关问题,但对我没有帮助.
下面的代码得到一个byte[]结果,适用于PDF和XLSX.对于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();
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
v6.0和v5.6的错误相同.这曾经在v5.0中工作(某些类在v5.6中已弃用).
如何以各种格式导出报告,包括HTML?
我正在开发一个功能,其中应用程序需要生成用户特定的电子邮件.这将在用户级别使用电子邮件模板进行设置或配置,该电子邮件模板基本上包含SQL查询,列模型,数据类型,主题,页眉,页脚等.模板用作电子邮件的数据集和布局.
现在使用这个XML模板我需要生成HTML电子邮件.应用程序将读取XML,执行SQL查询,然后将结果集与列模型匹配.超出此; 是否有任何框架或API可以帮助从Java对象生成HTML响应(格式良好的css表),或者必须使用原始HTML标记(等等)来烹饪?
我也在研究BIRT或Jasper是否可以提供HTML响应,但似乎并不是这样.如果有人有经验为这样的用例构建解决方案,请告诉我.