JasperReport 中使用的图像的 Samba 共享
Samba Share for Images used in a JasperReport
我在想,可以在 jasper 报告中显示来自 samba 共享的图像。但不是吗?
当我使用以下内容时它不起作用:
<image scaleImage="RetainShape" onErrorType="Blank">
<reportElement key="image-3" x="15" y="240" width="255" height="180" uuid="d9a3770a-777b-482b-a53a-dada5b71be1e">
<printWhenExpression><![CDATA[new Boolean($F{yzeichnung}.length() > 0)]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA[$F{yzeichnung}]]></imageExpression>
</image>
而 yzeichnung 带有类似“smb://mysambashare/directory/picture.jpg”的路径。路径本身是有效的,因为我可以使用 Dolphin 浏览目录。那么实现这一目标的关键是什么?非常感谢任何想法。
Dolphin 包含一个在 Java 应用程序中不可用的 Samba 客户端。
如果您想从 Java 应用程序中的 Samba 共享读取文件,您需要挂载 Samba 共享,然后通过标准 Java 文件系统 类.
例如在 /mnt/mysambashare 安装 Samba 共享,然后在报告中使用 /mnt/mysambashare/目录/picture.jpg。
ImageExpression 也接受 java java.io.InputStream
。您必须选择可以处理 Samba 的第 3 方库。
例如,将https://www.jcifs.org/src/中的jcif
jar放在classpath中,可以使用如下表达式:
new SmbFileInputStream("smb://" + user + ":" + password + "@" + filePath
+ File.separator + fileName);
我在想,可以在 jasper 报告中显示来自 samba 共享的图像。但不是吗? 当我使用以下内容时它不起作用:
<image scaleImage="RetainShape" onErrorType="Blank">
<reportElement key="image-3" x="15" y="240" width="255" height="180" uuid="d9a3770a-777b-482b-a53a-dada5b71be1e">
<printWhenExpression><![CDATA[new Boolean($F{yzeichnung}.length() > 0)]]></printWhenExpression>
</reportElement>
<imageExpression><![CDATA[$F{yzeichnung}]]></imageExpression>
</image>
而 yzeichnung 带有类似“smb://mysambashare/directory/picture.jpg”的路径。路径本身是有效的,因为我可以使用 Dolphin 浏览目录。那么实现这一目标的关键是什么?非常感谢任何想法。
Dolphin 包含一个在 Java 应用程序中不可用的 Samba 客户端。
如果您想从 Java 应用程序中的 Samba 共享读取文件,您需要挂载 Samba 共享,然后通过标准 Java 文件系统 类.
例如在 /mnt/mysambashare 安装 Samba 共享,然后在报告中使用 /mnt/mysambashare/目录/picture.jpg。
ImageExpression 也接受 java java.io.InputStream
。您必须选择可以处理 Samba 的第 3 方库。
例如,将https://www.jcifs.org/src/中的jcif
jar放在classpath中,可以使用如下表达式:
new SmbFileInputStream("smb://" + user + ":" + password + "@" + filePath
+ File.separator + fileName);