2016-05-18 6 views
1

Я пытаюсь найти способ определить, является ли сгенерированная страница нечетной или даже в шаблоне для выравнивания содержимого влево/вправо. Например, блок текста с символом рядом с ним. Символ остался бы оправданным на одной странице, и право было бы оправдано на следующем.XSL-FO: Ищите инструкцию If для определения нечетной или четной страницы.

Я не считаю, что проверка fo: page-number возможен. И я не могу понять способ, который будет работать с region-start/region-end, потому что символ не будет совпадать с соответствующим блоком текста в body-body.

<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> 

ответ

1

Для определения нечетной или четной страницы нет инструкции if.

Вы можете (или можете) использовать float="outside", чтобы плавать ваш символ на внешней стороне страницы. Однако мне неясно, из заявленных ограничений FOP на поддержку fo:float (http://xmlgraphics.apache.org/fop/fo.html#floats) поддерживается ли float="outside" (хотя поддерживается другими форматами форматирования XSL, включая AH Formatter).

+0

Я подтверждаю, что FOP 2.1 делает ** не ** поддерживает 'float =" вне "' (или '" внутри ''). – lfurini