2010-03-11 6 views
0

J'ai le problème suivant:XSL-FO: contenu statique ET contenu du flux dans la région-corps: possible?

J'ai besoin d'utiliser XSLFO pour générer un document multipage de 2 colonnes. Le problème est: je dois avoir une ligne verticale entre les 2 colonnes. Puisque XSLFO ne semble pas spécifier une option pour créer un tel diviseur, je dois le mettre manuellement là. Je pensais utiliser un conteneur à blocs rotatifs statiques avec un leader dans celui-ci. Cependant, il semble qu'il ne soit pas possible d'utiliser du contenu statique sur la même région que le contenu du flux.

<fo:layout-master-set> 
    <fo:simple-page-master 
     page-width="170mm" 
     page-height="222mm"   
     master-name="page" 
     > 
     <fo:region-body region-name="xsl-region-body" 
         margin-top="2mm" 
         margin-bottom="2mm" 
         margin-left="10mm" 
         margin-right="10mm" 
         column-count="2" 
         column-gap="5mm" 
         /> 
    </fo:simple-page-master> 
    </fo:layout-master-set> 
<fo:page-sequence master-reference="page"> 
    <fo:static-content flow-name="xsl-region-body" ><!-- This gives a error --> 
     <fo:block>test</fo:block> 
    </fo:static-content> 
    <fo:flow flow-name="xsl-region-body"> 
     <xsl:apply-templates/> 
    </fo:flow> 
    </fo:page-sequence> 

Résultats dans (XEP):

[error] Duplicate identifier: flow-name="xsl-region-body". 
Property 'flow-name' should be unique within 'fo:page-sequence'. 

Y at-il des méthodes pour placer le contenu statique sur la zone principale lorsque le flux aussi contenu est placé là? Ou: existe-t-il un moyen de définir le diviseur qui divise une disposition à deux colonnes?

Répondre

2

Je suis finalement allé avec la solution suivante:

Utilisez un <FO:Region-Before "extend=100%">.

Il semble que vous puissiez facilement superposer le contenu de cette façon. Donc, c'est un peu un hack, mais avec un positionnement absolu d'un bloc-conteneur, ou juste un bloc positionné relatif, il fait le travail.

Questions connexes