我正在尝试传递给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
答案 0 :(得分:5)
好的我发现了...... 应该是:
<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>
答案 1 :(得分:1)
我有这个问题,在我的情况下,问题是图像的路径。
最初我有类似的东西:
<imageExpression><![CDATA["logo.bmp"]]></imageExpression>
然后我将其替换为:
<imageExpression><![CDATA["/home/reports/logo.bmp"]]></imageExpression>
显然它起作用了,因为我使用的是绝对路径(这不是一个好方法),然后我用图像文件夹的参数改变了静态绝对路径。