XSL - Imagen con xsl

 
Vista:

Imagen con xsl

Publicado por Mai (1 intervención) el 24/04/2008 10:18:33
Hola!

Os escribo muy desesperada por que llevo un par de meses con este tema.
Tengo una aplicacion en Java, que on xml y xsl genera un pdf.
Mi problema esta con la carga de imagenes desde el xsl para generar el pdf.
Tengo un codigo asi en el xsl

<fo:external-graphic border-after-color="#013A6C" border-before-color="#013A6C" border-end-color="#013A6C" border-start-color="#013A6C" color="#013a6c" display-align="center" content-width="auto" content-height="auto" width="auto" height="auto%" space-before.optimum="4px" space-after.optimum="4px" alignment-baseline="baseline">
<xsl:attribute name="src">url('<xsl:value-of select="registro/pathImagenes"/><xsl:text disable-output-escaping="yes">/logo.gif</xsl:text>')
</xsl:attribute>
</fo:external-graphic>

Total, que en mi servidor local de pruebas me funciona muy bien. Pero en produccion tenemos dos maquinas en cluster, una con las cosas estaticas(imagenes) y otra con el codigo(y donde esta el xsl tambien).Y no consigo que en produccion me encuentre las imagenes.Me imagino que este sea el problema ya que siempre hay que usar rutas absolutas no?

Lo que uso dedse java para encontrar el path es el GetRealPath .Si alguien puede ayudarme se lo agradecere eternamente....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cargar imágenes en un documento PDF utilizando rutas absolutas

Publicado por Alejandro (227 intervenciones) el 06/07/2023 19:59:27
Para cargar imágenes en un documento PDF utilizando rutas absolutas en XSL, puedes hacer lo siguiente:

1. En tu código Java, obtén la ruta absoluta de la carpeta que contiene las imágenes. Puedes usar el método `getRealPath()` para esto. Por ejemplo:

1
String rutaImagenes = request.getServletContext().getRealPath("/ruta/a/imagenes");

2. Pasa la ruta absoluta como un parámetro al XSLT. Puedes hacerlo agregando un atributo adicional al elemento `<xsl:stylesheet>` en tu XSLT. Por ejemplo:

1
2
3
4
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="my-namespace">
  <xsl:param name="rutaImagenes" select="''" />
  ...
</xsl:stylesheet>

3. Dentro de tu XSLT, utiliza el parámetro `rutaImagenes` para construir la ruta completa de las imágenes. Puedes concatenar el parámetro con la ruta relativa de las imágenes. Por ejemplo:

1
<xsl:attribute name="src">url('<xsl:value-of select="$rutaImagenes"/><xsl:text>/logo.gif</xsl:text>')</xsl:attribute>

4. Al invocar la transformación XSLT desde tu código Java, pasa el valor de la ruta absoluta como el valor del parámetro `rutaImagenes`. Por ejemplo:

1
2
3
4
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource("ruta/al/transformador.xslt"));
transformer.setParameter("rutaImagenes", rutaImagenes);
...

De esta manera, estarás pasando la ruta absoluta de las imágenes desde Java al XSLT y utilizando esa ruta para cargar las imágenes en el documento PDF.

Recuerda que es importante asegurarte de que la ruta absoluta sea válida y que las imágenes estén ubicadas en la ubicación correcta en tu servidor de producción.

Espero que esta solución te ayude a cargar imágenes en tu documento PDF utilizando rutas absolutas en XSL. ¡Buena suerte con tu aplicación!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar