2009-07-04 17 views
15

tener una plantilla muy simple:XSL-FO - elementos de bloque vacías

<xsl:template match="p"> 
    <fo:block> 
     <xsl:apply-templates/> 
    </fo:block> 
</xsl:template> 

me pregunto cómo decirle FO para mantener las líneas vacías si el bloque está vacía.

Saludos
Ene

Respuesta

32

Sólo añadir un elemento <fo:leader/> al final de su <fo:block>. De esta manera:

<xsl:template match="p"> 
     <fo:block> 
       <xsl:apply-templates/> 
       <fo:leader /> 
     </fo:block> 
</xsl:template> 

El líder no hará nada por las líneas con contenido, y creará una línea vacía para las líneas sin contenido.

Probado con Apache FOP y XEP.

8

Alternativamente,

<fo:block white-space-treatment="preserve"> </fo:block> 
11

O

<xsl:template match="p"> 
    <fo:block> 
      <xsl:apply-templates/> 
      &#x00A0; 
    </fo:block> 

&#x00A0; es el equivalente de &nbsp; en HTML (en realidad &nbsp; es una entidad XML que se define como A0, que es el carácter Unicode para Non Breaking Space).