JasperReport org.w3c.tools.codec.Base64Decoder 无法解析为类型

sir*_*rso 2 java jasper-reports

我正在使用此代码片段在我的报告中加载图像:

new java.io.StringBufferInputStream(new org.w3c.tools.codec.Base64Decoder([Variable]).processString())
Run Code Online (Sandbox Code Playgroud)

这是在 JasperStudio Professional 上运行的。当我切换到社区版 6.5.1(由于即将过期而删除了其他版本)时,这部分不起作用并显示

org.w3c.tools.codec.Base64Decoder 无法解析为类型。

我该如何解决这个错误?

Mat*_*zyk 6

您可能会收到错误,因为您的类路径中没有任何包含 org.w3c.tools 的 *.jar。它曾经是 jasperreports.jar 的一部分,直到版本 6.4.3。

Jaspersoft Studio CE 6.5.1 在版本 6.5.1 中使用 jasperreports。

您可以使用几种替代解决方案来解决此问题:

1. 下载包含org.w3c.tools的库。

  1. 您可以从https://mvnrepository.com/artifact/org.w3c.jigsaw/jigsaw/2.2.6下载jigsaw.jar包
  2. 将其放置到您的项目文件夹(更好)或其他位置(更糟糕,但仍然可以)。
  3. 在 JasperStudio 中,在您的项目上单击“人民币”(在项目资源管理器中)。从菜单中选择构建路径。应打开窗口,您可以在其中“添加 JAR”(如果 jar 在项目中)或“添加外部 JAR”(如果在外部文件夹中)。
  4. 将 jigsaw.jar 添加到您的构建路径,应用更改并享受。

2. 将 snipplet 替换为仅使用 jasperreports 6.4.3+ 和内置 java 中可用的类的片段:

net.sf.jasperreports.engine.util.JRImageLoader.getInstance(new SimpleJasperReportsContext()).loadAwtImageFromBytes(javax.xml.bind.DatatypeConverter.parseBase64Binary([Variable]))
Run Code Online (Sandbox Code Playgroud)

3.下载并使用Jaspersoft Studio CE 6.4.0或更早版本