XSL-FO:查找 If 语句以检测奇数页或偶数页



我正在尝试找到一种方法来检测生成的页面是否奇怪,甚至在模板中是否左/右对齐内容。例如,旁边带有符号的文本块。该符号将在一页上左对齐,在下一页上右对齐。

我不认为检查fo:page-number是不可能的。而且我想不出一种适用于区域开始/区域结束的方法,因为该符号不会与区域正文中与其关联的文本块对齐。

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

没有 if 语句来检测奇数页或偶数页。

您可以(或可能能够)使用 float="outside" 将符号浮动到页面外部。 但是,从 FOP 对fo:float支持 (http://xmlgraphics.apache.org/fop/fo.html#floats) 的声明限制中,我不清楚是否支持float="outside"(尽管其他 XSL 格式化程序(包括 AH 格式化程序)支持它)。

最新更新