簡體   English   中英

XSL-FO:如何添加可變頁母版引用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM