Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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_Xsl Fo_Apache Fop - Fatal编程技术网

Xml 将封面插入XSL:FO模板

Xml 将封面插入XSL:FO模板,xml,xsl-fo,apache-fop,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" m

我使用过这些文档,其中我需要编辑现有代码,以便从数据库映射字段。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>

然后页面开始为

<fo:page-sequence master-reference="Letter Page">  
    <fo:static-content flow-name="xsl-region-before" font-size="8pt" font-family="Arial">


然后是其他区域等。我查找了如何插入一些封面,但在尝试时不断出错,我使用的是记事本++并在每次测试时呈现pdf,因此这是一个非常耗时的过程。为了节省时间,我决定把一张图片作为封面。我知道这是一个FOP引擎1.0

我相信您想要尝试的是为您的封面定义一个新的简单页面母版,如果您不担心页边距等问题,您只需要给出区域主体定义,然后您就可以查看页面序列。在fo中,页面序列正是它听起来的样子,它是插入各种页面的顺序。如果查看,可以看到页面序列是如何定义的,以及如何以编程方式控制呈现哪些页面以及呈现顺序。如果你想要一个更复杂的例子,你也可以看看


如果您想了解如何将此应用于现有模板的更详细说明,那么有关模板当前功能的更多详细信息可能会有所帮助。

以下是一个简单的示例,可以帮助您完成此过程:

<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>

我是一个封面,格式我不管你想!
我是“页面”页面序列中的其余文本。
“封面”页面序列可以包含您想要的任何内容(我放了一些文本并将其变成红色),而“页面”页面序列包含其余内容

这将生成一个两页的文档,如下所示:

<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>

非常感谢。我想在我的测试中,我不断地弄乱一些语法或者错过了结构。你的例子实际上帮助很大。谢谢你,布朗。