我有一个jrxml,其节点如下,
<image>
<reportElement x="181" y="0" width="209" height="74"/>
<imageExpression class="java.lang.String"><![CDATA["logo.jpg"]]></imageExpression>
</image>
如何检查物理文件logo.jpg是否存在? 如果不存在,如何回退到默认图像&#34; default.jpg&#34;?
答案 0 :(得分:1)
<variable name="LOGO" class="java.lang.String">
<variableExpression>
<![CDATA[(new File("logo.jpg").isFile())? "logo.jpg":"default.jpg"]]>
</variableExpression>
<initialValueExpression>
<![CDATA[(new File("logo.jpg").isFile())? "logo.jpg":"default.jpg"]]>
</initialValueExpression>
</variable>
<image>
<reportElement x="181" y="0" width="209" height="74"/>
<imageExpression class="java.lang.String"><![CDATA[$V{LOGO}]]></imageExpression>
</image>
答案 1 :(得分:0)
您可以在Java代码中使用exists,如果这是您要用来检查的内容。不确定你是否要求采用另一种涉及XML本身的方法。
如果文件不存在,那么您只需映射默认图像。
答案 2 :(得分:0)
使用jasper报告中的参数或字段发送图像路径。例如,我使用field发送图像路径。字段名称是图像imagePath
。如果您有一个名为logo.png
的图像,则图像路径为字符串,其他方式设置默认图像的路径。
并用image来编写这个语法。
<image>
<reportElement uuid="0db5b93f-46e4-4aaa-aac9-5a6d090d7eb6" x="127" y="23" width="206" height="78"/>
<imageExpression><![CDATA[$F{imagePath}]]></imageExpression>
</image>
...享受