imagen con fop
Hola, no consigo mostrar una imagen en el pdf que intento construir. El pdf lo construyo con xml y xsl mediante fop pero al escribir en el xsl fo:external-graphic <fo:external-graphic src="ruta absoluta"/>
no muestra la imagen. He probado usando el atributo href y tambien escribiendo la ruta relativa pero no me ha dado resultado. ¿Alguna sugerencia?, muchas gracias!!
no muestra la imagen. He probado usando el atributo href y tambien escribiendo la ruta relativa pero no me ha dado resultado. ¿Alguna sugerencia?, muchas gracias!!
Hola amigo,
Te envio un extracto de un codigo en XSL para que saques una idea de como puede ser..
Saludos.
<xsl:variable name="vrImagenFondo1" select="s:Documento/s:Imp/s:Glosa/s:ENTIDAD_PAC"/>
<fo:block-container width="5.59cm" height="4cm" top="20.5cm" left="11cm" position="absolute">
<fo:block>
<fo:external-graphic src="C:\dteplus\79670700\0\timbrePAC\{$vrImagenFondo1}" width="3cm" height="3cm"/>
</fo:block>
</fo:block-container>
Te envio un extracto de un codigo en XSL para que saques una idea de como puede ser..
Saludos.
<xsl:variable name="vrImagenFondo1" select="s:Documento/s:Imp/s:Glosa/s:ENTIDAD_PAC"/>
<fo:block-container width="5.59cm" height="4cm" top="20.5cm" left="11cm" position="absolute">
<fo:block>
<fo:external-graphic src="C:\dteplus\79670700\0\timbrePAC\{$vrImagenFondo1}" width="3cm" height="3cm"/>
</fo:block>
</fo:block-container>
Gracias Pruizno aunque no lo he conseguido. Consigo sacar el informe con texto pero con la imagen no hay forma, he intentado con gif y jpg y rutas absolutas y relativas para la propiedad src pero no hay manera. No sé si el problema puede estar al hacer el transform desde java
Se me olvidaba comentar que la aplicacion está montada de la siguiente manera: recoge de sesion el string con el xml a mostrar, recoge el xsl y realiza la transformacion a pdf
Source xsltSrc = new StreamSource(new java.io.InputStreamReader(request.getSession().getServletContext().getResourceAsStream(xslPath)));
Transformer trans = this.transformerFactory.newTransformer(xsltSrc);
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
//trans.transform(new DOMSource(dom), new SAXResult(pdfDriver.getContentHandler()));
Source src = new StreamSource(new StringReader(xmlString));
trans.transform(src, new SAXResult(pdfDriver.getContentHandler()));
byte[] content = out.toByteArray();
response.setContentLength(content.length);
response.getOutputStream().write(content);
response.getOutputStream().flush();
response.getOutputStream().close();
Source xsltSrc = new StreamSource(new java.io.InputStreamReader(request.getSession().getServletContext().getResourceAsStream(xslPath)));
Transformer trans = this.transformerFactory.newTransformer(xsltSrc);
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
trans.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
//trans.transform(new DOMSource(dom), new SAXResult(pdfDriver.getContentHandler()));
Source src = new StreamSource(new StringReader(xmlString));
trans.transform(src, new SAXResult(pdfDriver.getContentHandler()));
byte[] content = out.toByteArray();
response.setContentLength(content.length);
response.getOutputStream().write(content);
response.getOutputStream().flush();
response.getOutputStream().close();