将封面页插入XSL:FO模板

idx*_*aro 2 xml xsl-fo apache-fop

我使用过这些文档,我需要编辑现有代码以映射数据库中的字段.XSL文档已经具有模板和区域.我的目标是在模板的任何边缘出现之前添加封面.

代码如下所示:

<fo:layout-master-set>
    <fo:simple-page-master master-name="Letter Page" page-width="8.3in" page-height="11.7in" 
        margin-top="0px" margin-bottom="0px" margin-right="0px" margin-left="0px">
        <fo:region-body region-name="xsl-region-body" 
            padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
            margin-top="4.250cm" margin-bottom="2.750cm" margin-left="1.8cm" margin-right="1.8cm" 
            border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" 
            extent="0px" column-gap="0px" column-count="1" reference-orientation="0"/>
        <fo:region-before region-name="xsl-region-before" 
            display-align="after" extent="3.8cm" 
            padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
            border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/>
        <fo:region-after region-name="xsl-region-after" 
            display-align="before" extent="2.750cm" 
            padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
            border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/>
        <fo:region-start region-name="xsl-region-start" 
            extent="1.8cm" 
            padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
            border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/>
        <fo:region-end region-name="xsl-region-end" 
            extent="1.8cm" 
            padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px" 
            border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/>
    </fo:simple-page-master>
</fo:layout-master-set>
Run Code Online (Sandbox Code Playgroud)

然后页面开始为

<fo:page-sequence master-reference="Letter Page">  
    <fo:static-content flow-name="xsl-region-before" font-size="8pt" font-family="Arial">
Run Code Online (Sandbox Code Playgroud)

其次是任何其他地区等.我查找了如何插入一些封面页但我在尝试时仍然遇到错误,我使用的是记事本++并在每次测试时渲染pdf,因此它变得非常耗时.我决定只把图像作为封面页来节省一些时间.我知道这是一个FOP引擎1.0.

Kev*_*own 6

这是一个简单的例子来帮助您完成整个过程:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
        <fo:simple-page-master page-width="8.5in" page-height="11in" master-name="Cover">
            <fo:region-body margin-top="0pt" background-color="red"/>
            <fo:region-before extent="0pt"/>
            <fo:region-after extent="0pt"/>
        </fo:simple-page-master>
        <fo:simple-page-master margin-top="1in" margin-left="1in"
            margin-bottom="18pt" margin-right="18pt"
            page-width="8.5in" page-height="11in" master-name="Pages">
            <fo:region-body margin-top="0pt"/>
            <fo:region-before extent="0pt"/>
            <fo:region-after extent="0pt"/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="Cover">
        <fo:flow flow-name="xsl-region-body">
            <fo:block text-align="center">
                I am a Cover Page, format me however you wish!
            </fo:block>
        </fo:flow>
    </fo:page-sequence>
    <fo:page-sequence master-reference="Pages">
        <fo:flow flow-name="xsl-region-body">
            <fo:block>
                I am the rest of the text in the "Pages" page-sequence.
            </fo:block>
        </fo:flow>
    </fo:page-sequence>
</fo:root>
Run Code Online (Sandbox Code Playgroud)

"封面"页面序列可以包含您想要的任何内容(我放置一些文本并将其设置为红色),"页面"页面序列具有内容的其余部分.

这会产生一个两页的文档,如下所示:

在此输入图像描述