net.sf.jasperreports.engine.JREException: 未找到字节数据

新手上路,请多包涵

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

我的形象:

 <parameter name="imagesDir" class="java.lang.String" isForPrompting="false"/>

 <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>

错误:

 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

原文由 Marcin Erbel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

好的,我找到了……应该是:

 <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>

原文由 Marcin Erbel 发布,翻译遵循 CC BY-SA 3.0 许可协议

我有这个问题,在我的例子中,问题是图像的路径。

最初我有类似的东西:

 <imageExpression><![CDATA["logo.bmp"]]></imageExpression>

然后我将其替换为:

 <imageExpression><![CDATA["/home/reports/logo.bmp"]]></imageExpression>

显然它起作用了,因为我使用的是绝对路径(这不是一个好方法),然后我用图像文件夹的参数更改了静态绝对路径。

原文由 Cristian Arteaga 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题