我有一個另存為的圖像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>
添加回答
舉報
0/150
提交
取消