2016-05-18 22 views
1

Ich versuche, einen Weg zu finden, um zu erkennen, ob die Seite, die gerade erzeugt wird, gerade oder ungerade in einer Vorlage ist, um Inhalte nach links/rechts auszurichten. Zum Beispiel ein Textblock mit einem Symbol daneben. Das Symbol würde auf einer Seite linksbündig und rechtsbündig auf der nächsten Seite stehen.XSL-FO: Suche nach If-Anweisung, um ungerade oder gerade Seite zu erkennen.

Ich glaube nicht, Überprüfung von: Seitenzahl ist möglich. Und ich kann mir keinen Weg vorstellen, der mit Region-Start/Region-Ende funktionieren würde, weil das Symbol nicht mit dem zugehörigen Textblock in Region-Body übereinstimmt.

<fo:layout-master-set> 
    <fo:simple-page-master master-name="EvenPage"> 
    <fo:region-body /> 
    </fo:simple-page-master> 
    <fo:simple-page-master master-name="OddPage"> 
    <fo:region-body /> 
    </fo:simple-page-master> 
    <fo:page-sequence-master master-name="Content"> 
    <fo:repeatable-page-master-alternatives> 
     <fo:conditional-page-master-reference master-reference="OddPage" odd-or-even="odd"/> 
     <fo:conditional-page-master-reference master-reference="EvenPage" odd-or-even="even"/> 
    </fo:repeatable-page-master-alternatives> 
    </fo:page-sequence-master> 
</fo:layout-master-set> 

<fo:page-sequence master-reference="Content">  
    <fo:flow> 
    <xsl:apply-templates select="*"/> 
    </fo:flow> 
</fo:page-sequence> 

Antwort

1

Es gibt keine if-Anweisung, um eine ungerade oder gerade Seite zu erkennen.

Sie könnten (oder könnten) float="outside" verwenden, um Ihr Symbol außerhalb der Seite zu platzieren. Es ist jedoch für mich nicht klar, dass die FOP-Beschränkungen fo:float (http://xmlgraphics.apache.org/fop/fo.html#floats) angeben, ob float="outside" unterstützt wird oder nicht (obwohl es von anderen XSL-Formatierern unterstützt wird, einschließlich AH Formatter).

+0

Ich bestätige, dass FOP 2.1 ** nicht ** unterstützt 'float =" outside "' (oder '" inside "'). – lfurini