Мне нужно выровнять изображение в теле страницы на основе номера страницы: правое выравнивание для нечетных страниц, левое для четных страниц.Изображения появляются не в верхнем и нижнем колонтитулах страницы, а в основном контенте.
При поиске был найден подход, использующий повторяющиеся-page-master-альтернативы с простыми-page-master для четных и нечетныхстраницы.Я подумал, что могу передать параметр в шаблон на основе четной / нечетной страницы и использовать его для выравнивания изображения.
Это прекрасно работает для верхних и нижних колонтитулов.Но решение использует несколько блоков fo: flow в fo: page-sequence, и fop (2.3) не нравится;он сообщает
Для "fo: page-sequence" может быть объявлено только одно "fo: flow".
error.
<xsl:template match="/">
<fo:root>
<fo:layout-master-set>
<fo:page-sequence-master master-name="recipes"> <fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="recipes-odd" odd-or-even="odd"/>
<fo:conditional-page-master-reference master-reference="recipes-even" odd-or-even="even"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
<fo:simple-page-master master-name="recipes-odd" page-height="{$height}" page-width="{$width}">
<fo:region-body region-name="body-odd" margin="2cm"/>
<fo:region-before region-name="before-odd" margin-top="0in" extent="3in" />
<fo:region-after region-name="after-odd" extent=".5in" />
</fo:simple-page-master>
<fo:simple-page-master master-name="recipes-even" page-height="{$height}" page-width="{$width}">
<fo:region-body region-name="body-even" margin="2cm"/>
<fo:region-before region-name="before-even" margin-top="0in" extent="3in" />
<fo:region-after region-name="after-even" extent=".5in" />
</fo:simple-page-master>
<xsl:apply-templates select="cookbook/*"/>
</fo:root>
</xsl:template>
<xsl:template match="recipes">
<fo:page-sequence master-reference="recipes">
<fo:static-content flow-name="before-odd">
<fo:block></fo:block>
</fo:static-content>
<fo:static-content flow-name="before-even">
<fo:block></fo:block>
</fo:static-content>
<fo:static-content flow-name="after-odd">
<fo:block></fo:block>
</fo:static-content>
<fo:static-content flow-name="after-even">
<fo:block></fo:block>
</fo:static-content>
<fo:flow flow-name="body-odd">
<fo:block>
<xsl:apply-templates select="recipe">
<xsl:sort select="name"/>
<xsl:with-param name="side" select="right"/>
</xsl:apply-templates>
</fo:block>
</fo:flow>
<fo:flow flow-name="body-even">
<fo:block>
<xsl:apply-templates select="recipe">
<xsl:sort select="name"/>
<xsl:with-param name="side" select="left"/>
</xsl:apply-templates>
</fo:block>
</fo:flow>
</fo:page-sequence>
</xsl:template>
Есть ли способ получить fop для обработки нескольких потоков?Если нет, есть ли другой подход к управлению выравниванием изображения на основе номера страницы?