Estou precisando de passar uma imagem em byte para o relatório em jasper.
Tentei desta forma mas não foi enviado
public byte[] gerar(String id) { try { Catalogo catalogo = pesquisaPorId(id); ImageIcon gto = new ImageIcon(catalogo.getPaginas().iterator().next().getArquivos().iterator().next() .getArquivo().getArquivoByte()); JRDataSource dataSource = new JRBeanCollectionDataSource(null); Map<String, Object> parametros = new HashedMap<>(); parametros.put("imagem", gto.getImage()); return JasperRunManager.runReportToPdf( this.getClass().getClassLoader().getResourceAsStream("relatorio/catalogo.jasper"), parametros, dataSource); } catch (JRException e) { throw new GeralException("Erro ao gerar relatório de Cotação em PDF !"); } }
jasper
<?xml version="1.0" encoding="UTF-8"?> <!-- Created with Jaspersoft Studio version 6.16.0.final using JasperReports Library version 6.16.0-48579d909b7943b64690c65c71e07e0b80981928 --> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="catalogo" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="9b0210bf-df4b-4d67-8415-27df24199e5f"> <parameter name="imagem" class="java.lang.String"/> <queryString> <![CDATA[]]> </queryString> <background> <band splitType="Stretch"/> </background> <detail> <band height="600" splitType="Stretch"> <image> <reportElement stretchType="ContainerHeight" x="0" y="0" width="555" height="600" uuid="266110fc-056f-429d-9a43-1447b7ff858d"> <property name="com.jaspersoft.studio.unit.width" value="px"/> </reportElement> <imageExpression><![CDATA[$P{imagem}]]></imageExpression> </image> </band> </detail> </jasperReport>
O que está errado ?