使用XML在XSL中插入两个图像

时间:2016-03-02 17:07:45

标签: xml xslt xsl-fo

我想在一个文档前面包含两个图像。创建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>

0 个答案:

没有答案