我正在尝试找到一种方法来检测生成的页面是否奇怪,甚至在模板中是否左/右对齐内容。例如,旁边带有符号的文本块。该符号将在一页上左对齐,在下一页上右对齐。
我不认为检查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 格式化程序)支持它)。