[英]XSL-FO: How to add variable page master references
我正在处理一个双面文档,该文档需要一个首页(带有图像,例如“ Letterhead.jpg”),该页面的支持者(带有衬底图像,例如“ Backer.jpg”),以及该首页的信息在页面边界上流动,然后流入“连续”页面(图像为“连续”)。 该连续页面的背面也需要相同的“ continuation.jpg”图像,然后信息流到该反向页面上。
我在正确设置此设置时遇到问题。 我目前的主页工作正常,但从那里开始我所希望的格式却没有。 如果主页没有溢出,则默认情况下反之则是拉起连续图形。 然后,当发生溢出时,数据将流到支持者(带有连续图形)上,然后流到任何后续页面上。
我很抱歉,如果这篇文章令人困惑,并且我不能很好地解释我的摘要,我需要的是:
主页面 :具有letterhead.jpg图形的流数据。
反转主页面 :此处没有数据流。 仅backer.jpg图形。 (如果“主页面”中的流数据溢出了页面边界,那么..)
Continuation Page :继续从主要流数据,具有continuation.jpg图形。
连续页面反转:连续页面中流数据的延续,带有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>
谢谢你的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.