为了账号安全,请及时绑定邮箱和手机立即绑定

如何在JasperReport中将svg字节数组显示为图像?

如何在JasperReport中将svg字节数组显示为图像?

繁花不似锦 2019-11-04 10:09:52
我有一个另存为的图像byte[],我想在JasperReport中将其显示为图像。我尝试从Java方法获取数据:public InputStream getImage(){  return new ByteArrayInputStream(getImageByteArray());}和public Image getImage() throws IOException{    return ImageIO.read(new ByteArrayInputStream(getImageByteArray()));}和public String getImage(){  return new String((new org.apache.commons.codec.binary.Base64()).encode(getImageByteArray()));}但它们似乎都没有起作用。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>我尝试的某些操作会出现异常,某些操作会打印JasperReport,但图像应该为空白的区域。我知道图像数据在那里,因为我可以在JSF页面中显示它。图像数据是SVG数据。
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

您可以尝试以下方法:


将您的图片参数(此处为img)设置为InputStream


<parameter name="img" class="java.io.InputStream">

        <parameterDescription><![CDATA[]]></parameterDescription>

    </parameter>

然后将onErrorType =“ Blank”设置为您的图像元素(实际上不知道其原因:))


<image onErrorType="Blank">

    <reportElement x="2" y="4" width="119" height="62" uuid="66857471-6aa2-4ff0-be59-e2e1b0214bfc"/>

    <imageExpression><![CDATA[$P{img}]]></imageExpression>

</image>


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 758 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信