在每页之后切换页眉和页脚

时间:2015-04-23 14:30:36

标签: xml xslt xsl-fo

大家好我想用xslt my xml文件转换成xsl:fo文件。我的问题是如何在每页之后切换左右页面(替换)的标题。

现在我的解决方案我只得到一个页面。

我使用Saxon HE和xslt 2.0

我的xsl:fo文件:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
	<fo:layout-master-set>
		<!-- Right Page -->
		<fo:simple-page-master  master-name="rightPage">
			<fo:region-body region-name="body" margin="20mm 0mm 20mm 0mm"/>
			<fo:region-before region-name="rightPageHeader" extent="5in"/>
		</fo:simple-page-master>
		
		<!-- Left Page -->
		<fo:simple-page-master master-name="leftPage">
			<fo:region-body region-name="body" margin="20mm 0mm 20mm 0mm"/>
			<fo:region-before region-name="leftPageHeader" extent="5in"/>
		</fo:simple-page-master>
		
		<fo:page-sequence-master master-name="pages">
			<fo:repeatable-page-master-alternatives>
				<fo:conditional-page-master-reference master-reference="rightPage" odd-or-even="odd"/>
				<fo:conditional-page-master-reference odd-or-even="even" master-reference="leftPage"/>
			</fo:repeatable-page-master-alternatives>
		</fo:page-sequence-master>		
	</fo:layout-master-set>

	<fo:page-sequence master-reference="pages">			
		<fo:static-content flow-name="rightPageHeader">
			<fo:block>
				<fo:block text-align="left" font-weight="bold">Standard configuration</fo:block>
				<fo:block text-align="right">
					<fo:external-graphic src="headerHico.jpg" height="2.00in" width="2.00in"/>
				</fo:block>
			</fo:block>
		</fo:static-content>
		
		<fo:static-content flow-name="leftPageHeader">
			<fo:block>
				<fo:block text-align="left">
					<fo:external-graphic src="headerHico.jpg" height="2.00in" width="2.00in"/>
				</fo:block>
			</fo:block>
		</fo:static-content>
	
		<fo:flow flow-name="body">
			<fo:block>
				<xsl:apply-templates select="/"/>
			</fo:block>
		</fo:flow>	
	</fo:page-sequence>
</fo:root>

我希望有人可以帮助我:)。

1 个答案:

答案 0 :(得分:0)

您的页面几何定义正确

但是,如果您的内容很短且适合单个页面,将只创建一个页面(使用rightPage主页)。

如果您要测试这两种类型的网页,可以在现有网页之后添加此fo:block

        <fo:block break-before="page">
            This will be placed on another page.
        </fo:block>

次要观察:目前,两个页面母版中的region-before都高于region-body的上边距(5英寸> 20毫米),这可能导致如果标题包含许多行,则重叠 我通常会在创建新background-color时为每个页面区域设置不同的page-master,以便我可以轻松查看其维度,直到我对结果满意为止。< / p>