2009-07-04 8 views
15

ayant un modèle assez simple:XSL-FO - éléments de blocs vides

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

Je me demande comment dire FO pour maintenir des lignes vides si le bloc est vide.

Vive
Jan

Répondre

32

ajouter juste un élément <fo:leader/> à la fin de votre <fo:block>. Comme ceci:

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

Le leader ne fera rien pour les lignes avec du contenu, et créera une ligne vide pour les lignes sans contenu.

Testé avec Apache FOP et XEP.

8

Alternativement,

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

Ou

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

&#x00A0; est l'équivalent de &nbsp; en HTML (en fait &nbsp; est une entité XML qui est défini comme A0 qui est le caractère Unicode pour l'espace non brisant).

Questions connexes