相关疑难解决方法(0)

使用JasperReports和相对路径

我有一个网络应用程序,客户端已要求查看一些报告.方法是使用iReport并在屏幕上显示报告.

我已经问了这样的事情.但今天我发现报告文件(jrxml)的路径是绝对的.所以我必须更改程序,以便它接受相对路径.我一直在尝试这样做,但似乎jrxml或编译(.jasper)文件都不接受既不编译也不填充报告的相对路径.

这是我迄今为止所得到的:

//path is generated as request.getContextPath() + "/jrxmlFiles/"
public void generateReport(HttpServletResponse res, ConexionAdmin con, String path) throws Exception{ 

    ServletOutputStream out = null;
    ByteArrayOutputStream bos    = new ByteArrayOutputStream();

    JasperDesign jasperDesign = JRXmlLoader.load(path);
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

  byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, pars, con.initConexion());
        res.setContentType("application/pdf");
  res.setContentLength(bytes.length);
  out = res.getOutputStream();
  out.write(bytes, 0, bytes.length);

  res.setHeader("Cache-Control", "cache");
  res.setHeader("Content-Disposition", "attachment; filename=report.pdf"); 
  res.setHeader("Pragma", "cache");
  res.setContentLength(bos.size());

  out.write(bos.toByteArray());
  out.flush();
  bos.close();
  out.close(); 
  res.flushBuffer();
}
Run Code Online (Sandbox Code Playgroud)

这似乎适用于绝对路径,但抛出我:

Exception Message
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException
Run Code Online (Sandbox Code Playgroud)

当改为相对路径时.我在网上搜索没有成功如何改变我的适合度.

我有jasper API的javaDoc,但如果我能帮助它,我宁愿不读它.

java jasper-reports

12
推荐指数
1
解决办法
3万
查看次数

net.sf.jasperreports.engine.JRException:找不到字节数据

我正在尝试传递给jasper报告字符串位置的模板。因此,我正在模板和值中传递参数的键。当我在项目中有图像时,一切都正常,但是我想在另一个地方使用它。有什么方法可以从例如属性文件中读取参数?我不知道为什么这种解决方案不起作用:

我的形象:

<parameter name="imagesDir" class="java.lang.String" isForPrompting="false"/>
Run Code Online (Sandbox Code Playgroud)

...

<image isLazy="true">
    <reportElement key="image-1" style="PHLabel" x="0" y="0" width="160" height="33"/>
    <imageExpression class="java.lang.String"><![CDATA["$P{imagesDir}"+"logo.bmp"]]></imageExpression>
</image>
Run Code Online (Sandbox Code Playgroud)

错误:

Error during exporting report statement_account_10 to PDF.
net.sf.jasperreports.engine.JRException: Byte data not found at : 
((java.lang.String)parameter_imagesDir.getValue())logo.bmp
Run Code Online (Sandbox Code Playgroud)

java xml jasper-reports

2
推荐指数
2
解决办法
2万
查看次数

标签 统计

jasper-reports ×2

java ×2

xml ×1