1

我有一个 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”?

4

3 回答 3

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>

从这个网站得到线索

于 2013-11-11T09:33:42.533 回答
0

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

享受...

于 2013-11-08T14:47:14.930 回答
0

如果您要检查的话,您可以在 Java 代码中使用存在。不太确定您是否要求使用涉及 XML 本身的另一种方法。

如果文件不存在,那么您只需映射默认图像。

于 2013-11-08T14:26:06.267 回答