Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSL-FO:如何添加可变页面主控引用_Xml_Xslt_Xslt 1.0_Xsl Fo - Fatal编程技术网

Xml XSL-FO:如何添加可变页面主控引用

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”图像,然后信息会流向该反向页面 我在正确设置此项时遇到问题。 目前,我的主页运行良好,但从那里它的格式不是我所希望的。 如果主页面没有溢出,则默认情况下,相

我正在处理一个双面文档,它需要一个首页(带有一个图像,例如'Letterhead.jpg')、一个该页的后台(带有一个后台图像,例如'backer.jpg'),如果该首页的信息流过页面边界,它将流入一个'continuation'页面(带有图像'continuation')。此延续页面还需要在背面显示相同的“continuation.jpg”图像,然后信息会流向该反向页面

我在正确设置此项时遇到问题。 目前,我的主页运行良好,但从那里它的格式不是我所希望的。 如果主页面没有溢出,则默认情况下,相反的情况是拉取延续图形。然后,当出现溢出时,数据流到后台(带有延续图形),然后是任何后续页面

如果这篇文章让人困惑,我很抱歉,我没有很好地解释,我的总结,我需要的是:

主页:带有信头.jpg图形的流量数据

主页的背面:此处无数据流。只有backer.jpg图形。 (如果来自主页面的流数据溢出页面边界,则..)

延续页面:延续来自主服务器的流量数据,带有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>


谢谢你的帮助

我认为您最好/唯一的选择可能是使用最大重复次数属性。我自己也有点挣扎(见)。您可能需要对其进行设置,以使您的前两个页面位于它们自己的可重复页面主选项中,最多可以从2开始。然后需要确定剩余页面的逻辑。