Xml XSL-FO:如何添加可变页面主控引用
我正在处理一个双面文档,它需要一个首页(带有一个图像,例如'Letterhead.jpg')、一个该页的后台(带有一个后台图像,例如'backer.jpg'),如果该首页的信息流过页面边界,它将流入一个'continuation'页面(带有图像'continuation')。此延续页面还需要在背面显示相同的“continuation.jpg”图像,然后信息会流向该反向页面 我在正确设置此项时遇到问题。 目前,我的主页运行良好,但从那里它的格式不是我所希望的。 如果主页面没有溢出,则默认情况下,相反的情况是拉取延续图形。然后,当出现溢出时,数据流到后台(带有延续图形),然后是任何后续页面 如果这篇文章让人困惑,我很抱歉,我没有很好地解释,我的总结,我需要的是: 主页:带有信头.jpg图形的流量数据 主页的背面:此处无数据流。只有backer.jpg图形。 (如果来自主页面的流数据溢出页面边界,则..) 延续页面:延续来自主服务器的流量数据,带有Continuation.jpg图形 延续页面的反向:延续页面中的流量数据,带有Continuation.jpg图形 结束页:结束处的空白页 这是我目前的代码:Xml XSL-FO:如何添加可变页面主控引用,xml,xslt,xslt-1.0,xsl-fo,Xml,Xslt,Xslt 1.0,Xsl Fo,我正在处理一个双面文档,它需要一个首页(带有一个图像,例如'Letterhead.jpg')、一个该页的后台(带有一个后台图像,例如'backer.jpg'),如果该首页的信息流过页面边界,它将流入一个'continuation'页面(带有图像'continuation')。此延续页面还需要在背面显示相同的“continuation.jpg”图像,然后信息会流向该反向页面 我在正确设置此项时遇到问题。 目前,我的主页运行良好,但从那里它的格式不是我所希望的。 如果主页面没有溢出,则默认情况下,相
<fo:layout-master-set>
<fo:page-sequence-master master-name="document">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="continuation-even" page-position="first" odd-or-even="even"/>
<fo:conditional-page-master-reference master-reference="letter" page-position="first"/>
<fo:conditional-page-master-reference master-reference="continuation-odd" odd-or-even="odd"/>
<fo:conditional-page-master-reference master-reference="continuation-rest" odd-or-even="even"/>
<fo:conditional-page-master-reference master-reference="last" page-position="last" odd-or-even="even"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
<fo:simple-page-master master-name="letter" page-height="32.0cm" page-width="22.5cm" margin-top="1.15cm" margin-bottom="2.15cm" margin-left="0.75cm" margin-right="0.75cm">
<fo:region-body margin-top="10.3cm" margin-bottom="2cm" margin-left="1.6cm" margin-right="2.5cm" />
<fo:region-before region-name="letterhead graphic" extent="29.7cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="continuation-odd" page-height="32.0cm" page-width="22.5cm" >
<fo:region-body margin-top="4.5cm" margin-bottom="1.8cm" margin-left="2.3cm" margin-right="2.0cm" />
<fo:region-before region-name="continuation graphic" extent="29.7cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="continuation-even" page-height="32.0cm" page-width="22.5cm" >
<fo:region-body margin-top="32.0cm" margin-bottom="0cm" margin-left="2.5cm" margin-right="2.0cm" />
<fo:region-before region-name="backer" extent="29.7cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="continuation-rest" page-height="32.0cm" page-width="22.5cm" >
<fo:region-body margin-top="4.5cm" margin-bottom="1.8cm" margin-left="2.3cm" margin-right="2.0cm" />
<fo:region-before region-name="continuation graphic" extent="29.7cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="last" page-height="32.0cm" page-width="22.5cm" >
<fo:region-body margin-top="0.5cm" margin-bottom="0.5cm" margin-left="0.5cm" margin-right="2.0cm" />
<fo:region-before region-name="end-page" extent="29.7cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="separator" page-height="32.0cm" page-width="22.5cm" margin-top="2.15cm" margin-bottom="1.15cm" margin-left="1.75cm" margin-right="0.75cm">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
就是这样
通过你提到的内容和你添加的内容,你原来的问题解决了这个问题
下面是我们现在编写的代码,它正是我们所需要的
<xsl:template match="/">
<fo:root>
<fo:layout-master-set>
<fo:page-sequence-master master-name="document">
<fo:repeatable-page-master-alternatives maximum-repeats="2">
<fo:conditional-page-master-reference master-reference="front" odd-or-even="odd"/>
<fo:conditional-page-master-reference master-reference="back-special" odd-or-even="even"/>
</fo:repeatable-page-master-alternatives>
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="front" odd-or-even="odd"/>
<fo:conditional-page-master-reference master-reference="back" odd-or-even="even"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
<fo:simple-page-master master-name="front" page-height="29.7cm" page-width="21.0cm" margin-top="5cm" margin-bottom="5cm" margin-left="2.5cm" margin-right="2.5cm">
<fo:region-body/>
</fo:simple-page-master>
<fo:simple-page-master master-name="back" page-height="29.7cm" page-width="21.0cm" margin-top="5cm" margin-bottom="5cm" margin-left="2.5cm" margin-right="2.5cm">
<fo:region-body/>
</fo:simple-page-master>
<fo:simple-page-master master-name="back-special" page-height="29.7cm" page-width="21.0cm" margin-top="5cm" margin-bottom="25cm" margin-left="2.5cm" margin-right="2.5cm">
<fo:region-body/>
<fo:region-before region-name="special" extent="29.7cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="document">
<fo:static-content flow-name="special">
<fo:block>
<fo:external-graphic src="url('special.jpg')"/>
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body" font-family="Helvetica" font-size="14pt">
<fo:block>
<xsl:for-each select="/data/item">
<fo:block space-after="2cm"><xsl:value-of select="."/></fo:block>
</xsl:for-each>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
谢谢你的帮助 我认为您最好/唯一的选择可能是使用最大重复次数属性。我自己也有点挣扎(见)。您可能需要对其进行设置,以使您的前两个页面位于它们自己的可重复页面主选项中,最多可以从2开始。然后需要确定剩余页面的逻辑。