我想在一个文档前面包含两个图像。创建PDF我使用XSTL和XML。在这种情况下,XML是:
<doc>
<titulo>
<![CDATA[ DOCUMENTO DE PRUEBA]]>
</titulo>
<img1>D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp4\wtpwebapps\MyApp/img/logos/1977__PDF_PORTADA__wDocumento.jpg</img1>
<img2>D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp4\wtpwebapps\MyApp/img/logos/1977__PDF_PORTADA__wDocumento.jpg</img2>
<sociedad>SOCIEDAD DE PRUEBA</sociedad>
<cif>CIF - B12345678</cif>
<direccion>Gran via</direccion>
<direccionSec>Castellana</direccionSec>
</doc>
当我只包含一张图片时,它可以正常工作。
<fo:table-row height="140mm" display-align="center">
<fo:table-cell > <!-- Celda para Tipo de solicitud -->
<fo:block text-align="center">
<fo:external-graphic>
<xsl:attribute name="src" >
<xsl:value-of select="/doc/img1"/>
</xsl:attribute>
</fo:external-graphic>
</fo:block>
</fo:table-cell>
</fo:table-row>
但是当我包含两张图片时,它什么也没有显示。
<fo:table-row height="140mm" display-align="center">
<fo:table-cell >
<!-- Celda para Tipo de solicitud -->
<fo:block text-align="center">
<fo:external-graphic>
<xsl:attribute name="src" >
<xsl:value-of select="/doc/img1"/>
</xsl:attribute>
</fo:external-graphic>
<fo:external-graphic>
<xsl:attribute name="src" >
<xsl:value-of select="/doc/img2"/>
</xsl:attribute>
</fo:external-graphic>
</fo:block>
</fo:table-cell>
</fo:table-row>
我做错了什么?
完整的XSL是:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:barcode="org.krysalis.barcode4j.xalan.BarcodeExt"
xmlns:fox="http://xml.apache.org/fop/extensions"
xmlns:java="java" extension-element-prefixes="java"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:xalan="http://xml.apache.org/xalan">
<!-- Plantilla para generación de NOTA para la AEPD
Estructura principal del documento:
-->
<xsl:attribute-set name="lineaHorizontal">
<xsl:attribute name="leader-pattern">rule</xsl:attribute>
<xsl:attribute name="rule-thickness">0.4mm</xsl:attribute>
<xsl:attribute name="leader-length">19.0cm</xsl:attribute>
<xsl:attribute name="space-before.optimum">1.0mm</xsl:attribute>
<xsl:attribute name="space-after.optimum">1.0mm</xsl:attribute>
<xsl:attribute name="color">black</xsl:attribute>
</xsl:attribute-set>
<xsl:output media-type="application/pdf" indent="no" encoding="utf-8"/>
<xsl:template match ="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- Definir layout principal de la pagina -->
<fo:layout-master-set>
<fo:simple-page-master master-name="portada_documento"
page-height="29.7cm"
page-width="21cm"
margin-top="1.0cm"
margin-bottom="1.0cm"
border-color="rgb(0,0,0)"
border-style="solid"
border-width="0.5px"
margin-left="1.0cm"
margin-right="1.0cm">
<fo:region-body margin-top="1.8cm" margin-bottom="1.0cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<!-- Fin definicion layout (formato) de la pagina -->
<!-- Comienzo de page-sequence. Definimos secuencia de páginas del documento.
El atributo master-reference indica el layout-master-set que se aplicará para
cada página. En este caso solo tenemos un master-set ("nota_aepd")
-->
<fo:page-sequence master-reference="portada_documento">
<!-- Inicio body flow-name="xsl-region-body" indica que los
elementos definidos en esta secuencia se pintarán después del header-->
<fo:flow flow-name="xsl-region-body">
<!-- Bloque (1) con Tipo de solicitud y "Datos de registro de entrada -->
<!-- Bloque con una tabla que tendra dos celdas -->
<fo:block>
<fo:table padding="2mm" >
<fo:table-column column-number="1"/>
<fo:table-body >
<fo:table-row height="50mm">
<fo:table-cell padding="2mm" > <!-- Celda para Tipo de solicitud -->
<fo:block font-weight="bold" font-size="35pt" font-family="calibri" text-align="center">
<xsl:value-of select="/doc/titulo" />
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row height="140mm" display-align="center">
<fo:table-cell > <!-- Celda para Tipo de solicitud -->
<fo:block text-align="center">
<fo:external-graphic>
<xsl:attribute name="src" >
<xsl:value-of select="/doc/img1"/>
</xsl:attribute>
</fo:external-graphic>
<fo:external-graphic>
<xsl:attribute name="src" >
<xsl:value-of select="/doc/img2"/>
</xsl:attribute>
</fo:external-graphic>
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row height="20mm">
<fo:table-cell padding="2mm" > <!-- Celda para Tipo de solicitud -->
<fo:block text-align="center">
<fo:leader xsl:use-attribute-sets="lineaHorizontal"/>
</fo:block>
<fo:block font-weight="normal" font-size="8pt" font-family="calibri" text-align="justify">
Texto de prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba y prueba
<xsl:value-of select="/doc/sociedad" />
y prueba y prueba y prueba y prueba y prueba
</fo:block>
<fo:block text-align="center">
<fo:leader xsl:use-attribute-sets="lineaHorizontal"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row height="20mm" display-align="after">
<fo:table-cell padding-left="2mm" >
<fo:block font-weight="normal" font-size="6pt" font-family="calibri" text-align="left">
<xsl:value-of select="/doc/sociedad" />
</fo:block>
<fo:block font-weight="normal" font-size="6pt" font-family="calibri" text-align="left">
<xsl:value-of select="/doc/cif" />
</fo:block>
<fo:block font-weight="normal" font-size="6pt" font-family="calibri" text-align="left">
<xsl:value-of select="/doc/direccion" />
</fo:block>
<fo:block font-weight="normal" font-size="6pt" font-family="calibri" text-align="left">
<xsl:value-of select="/doc/direccionSec" />
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
<!-- Fin body -->
</fo:page-sequence>
<!-- Fin page-sequece -->
</fo:root>
</xsl:template>
</xsl:stylesheet>