maravilloso
6/12/2013 - 6:21 AM

Embeber imágenes en base64 cuyo contenido se pasa como parámetro. Mas información: http://rgauss.com/2009/12/21/jasperreports-xml-datasourc

Embeber imágenes en base64 cuyo contenido se pasa como parámetro. Mas información: http://rgauss.com/2009/12/21/jasperreports-xml-datasource-with-inline-images/

<variable name="IMGFIRMA64" class="java.awt.Image" resetType="None">
	<variableExpression><![CDATA[ImageIO.read(new ByteArrayInputStream(Base64.decodeBase64($P{FIRMA64}.getBytes("UTF-8"))))]]></variableExpression>
</variable>
<!--
OJO: Es IMPORTANTE ponerle un valor POR DEFECTO para que no dé error 
en tiempo de ejecución antes de que sea capaz de procesar 
el valor de entrada de este parámetro.
-->
<parameter name="FIRMA64" class="java.lang.String">
	<parameterDescription><![CDATA[Imagen en base 64]]></parameterDescription>
	<defaultValueExpression><![CDATA["/9j/4AAQSkZJRgABAQEAYABgAAD ... "]]></defaultValueExpression>
</parameter>
<!--
OJO: hay que especificar su TIPO y su momento de EVALUACION a "Report"
-->
<image scaleImage="RetainShape" evaluationTime="Report">
    ...
	<imageExpression class="java.awt.Image"><![CDATA[$V{IMGFIRMA64}]]></imageExpression>
</image>
<import value="javax.imageio.ImageIO"/>
<import value="org.apache.commons.codec.binary.Base64"/>