我有一个 jrxml,它有一个如下节点,
<image>
<reportElement x="181" y="0" width="209" height="74"/>
<imageExpression class="java.lang.String"><![CDATA["logo.jpg"]]></imageExpression>
</image>
如何检查物理文件 logo.jpg 是否存在?如果不存在,如何退回到默认图像“default.jpg”?
我有一个 jrxml,它有一个如下节点,
<image>
<reportElement x="181" y="0" width="209" height="74"/>
<imageExpression class="java.lang.String"><![CDATA["logo.jpg"]]></imageExpression>
</image>
如何检查物理文件 logo.jpg 是否存在?如果不存在,如何退回到默认图像“default.jpg”?
<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>
使用 jasper 报告中的参数或字段发送您的图像路径。例如,我使用 field.Name 发送图像路径是 image 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>
享受...
如果您要检查的话,您可以在 Java 代码中使用存在。不太确定您是否要求使用涉及 XML 本身的另一种方法。
如果文件不存在,那么您只需映射默认图像。