【问题标题】:net.sf.jasperreports.engine.JRException: Byte data not foundnet.sf.jasperreports.engine.JRException:找不到字节数据
【发布时间】:2014-11-27 16:09:08
【问题描述】:

我正在尝试传递给 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

【问题讨论】:

    标签: java xml jasper-reports


    【解决方案1】:

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

    <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 的答案更灵活:alternate solution 并指示 ServletContext 认为根目录的位置(在我们服务器升级)。
    【解决方案2】:

    我遇到了这个问题,就我而言,问题是图像的路径。

    最初我有类似的东西:

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

    然后我将其替换为:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      • 2016-12-03
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多