相关疑难解决方法(0)

在JasperReport中将字节数组显示为图像

我将图像保存为a byte[],我想将其显示为JasperReport中的图像.我试过从Java方法获取数据:

public InputStream getImage(){
  return new ByteArrayInputStream(getImageByteArray());
}
Run Code Online (Sandbox Code Playgroud)

public Image getImage() throws IOException{
    return ImageIO.read(new ByteArrayInputStream(getImageByteArray()));
}
Run Code Online (Sandbox Code Playgroud)

public String getImage(){
  return new String((new org.apache.commons.codec.binary.Base64()).encode(getImageByteArray()));
}
Run Code Online (Sandbox Code Playgroud)

但他们似乎都没有工作.

jrxml看起来像这样:

<image hAlign="Center" vAlign="Middle" isUsingCache="true" isLazy="true">
   <reportElement positionType="Float" x="0" y="0" width="164" height="32" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true" uuid="c63c84a8-41c7-4ca3-8451-751d43fa8a9e"/>
   <imageExpression><![CDATA[$P{paramObject}.getImage()]]></imageExpression>
</image>
Run Code Online (Sandbox Code Playgroud)

我尝试的一些东西得到了异常,有些打印了JasperReport但是图像应该是空白的区域.我知道图像数据存在,因为我可以在JSF页面中显示它.图像数据是SVG数据.

java arrays svg jasper-reports

6
推荐指数
3
解决办法
1万
查看次数

如何处理"未找到字节数据"

我希望我的报告根据其他一些字段的值显示行中的图像.就像这样:

column_1 | column_2
======================
  xyz    | <xyz.jpg>
  abc    | <abc.jpg>
Run Code Online (Sandbox Code Playgroud)

column_1保存文本,column_2显示文件文本+".jpg"的图像.我通过将图像表达式设置为:$ F {COLUMN_1} +".jpg"来完成此操作.

问题是它有时可能(并且在我的情况下:将会发生)不存在具有适当名称的图像文件.这会生成"错误填写打印...未在以下位置找到字节数据:[some_image_path]".

有没有办法处理这样的错误,比如说,当指定的文件不存在时,显示一些默认图像?

jasper-reports

2
推荐指数
1
解决办法
8840
查看次数

标签 统计

jasper-reports ×2

arrays ×1

java ×1

svg ×1