我必须使用动态报告显示一些报告。我使用 NetBeans 和 Tomcat 7。最终,所有内容都必须上传到云 OpenShift。我使用DynamicReports创建简单的报告(代码片段):
Connection conn=null;
try {
Class.forName(DBConnStrings.driver);
conn = DriverManager.getConnection(DBConnStrings.url + DBConnStrings.dbName+DBConnStrings.sslState, DBConnStrings.userName, DBConnStrings.password);
} catch (Exception e) {
e.printStackTrace();
}
JasperReportBuilder report = DynamicReports.report();
report
.columns(
Columns.column("Tank Id", "id", DataTypes.integerType()),
Columns.column("Tank Name", "name", DataTypes.stringType()),
Columns.column("Label", "label", DataTypes.stringType()),
Columns.column("Description", "descrshort", DataTypes.stringType()));
report.setDataSource("SELECT id, name, label, descrshort FROM "+ DBConnStrings.dbName +".tbltankslist", conn);
try {
//show the report
//report.show();
//export the report to a pdf file
report.toPdf(new FileOutputStream("c:/report.pdf"));
} catch (DRException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
此代码位于 Servlet 中。有用。我首先得到 JasperViewer 并在我的 HDD 上得到一份 report.pdf。但我不想要它。首先我不想看到 JasperViewer,其次我不想将文件下载到客户端硬盘。如何仅在网络浏览器中显示报告?
Here is the question Jasper Reports.它是关于 jasper reports + iReport 的,我不知道如何将这些信息用于 DynamicReports - 首先,其次还有“下载 pdf 到客户端驱动器”方法,但我需要在浏览器中显示它。
最佳答案
在您的文件中使用以下代码,该代码重定向到 jasper 调用页面,以便您的 jasperPDF 应在新选项卡中打开而不是下载。
JasperInspiration.jsp => 在其中调用 jasperReport 的文件
<form method="POST" action="JasperInvocation.jsp" target="_blank">
关于java - 如何在浏览器中显示DynamicReports而不下载到客户端驱动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38074933/