Отобразить байтовый массив как изображение в JasperReport
У меня есть изображение, сохраненное как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.