我的布局从第1页开始并继续。现在的问题是它也计算空白页面。有没有办法强制停止空白页计数。
当前输出:
第1页(非空白) - 第1页,共6页
第2页(空白)
第3页(非空白) - 第3页,共6页
第4页(空白)
第5页(非空白) - 第5页,共6页
第6页(空白)
预期输出:
第1页(非空白) - 第1页,共3页
第2页(空白)
第3页(非空白) - 第2页,共3页
第4页(空白)
第5页(非空白) - 第3页,共3页
第6页(空白)
代码
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" >
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master margin-left="0.5in" margin-top="0.5in" margin-right="0.5in" margin-bottom="0.5in" page-height="11in" page-width="8.5in" master-name="PageFront">
<fo:region-body region-name="letterPageBody" margin-left="0pt" margin-top="3.5in" margin-right="0pt" margin-bottom="1in" />
<fo:region-before extent="4in" region-name="FirstPageHeader" precedence="true" />
<fo:region-after extent="0.8in" region-name="letterPageFooter" precedence="true" background-color="yellow" />
</fo:simple-page-master>
<fo:simple-page-master margin-left="0.5in" margin-top="0.5in" margin-right="0.5in" margin-bottom="0.5in" page-height="11in" page-width="8.5in" xmlns:fo="http://www.w3.org/1999/XSL/Format" master-name="Blank">
<fo:region-body margin-left="0pt" margin-top="3.5in" margin-right="0pt" margin-bottom="1in" region-name="letterPageBody2" />
</fo:simple-page-master>
<fo:page-sequence-master master-name="LetterPages">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="PageFront" page-position="first" odd-or-even="odd" />
<fo:conditional-page-master-reference master-reference="Blank" odd-or-even="even" />
<fo:conditional-page-master-reference master-reference="PageFront" odd-or-even="odd" />
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence force-page-count="auto" initial-page-number="auto" master-reference="LetterPages">
<fo:static-content flow-name="letterPageFooter">
<fo:block>
<xsl:apply-templates select="//region[@name='Footer']" />
</fo:block>
</fo:static-content>
<fo:static-content flow-name="FirstPageHeader">
<fo:table width="100%" table-layout="fixed">
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block background-color="#67D217">
<xsl:apply-templates select="//region[@name='address']" />
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block text-align="center">Page <fo:page-number /> of <fo:page-number-citation ref-id="LastPage" /></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:static-content>
<fo:flow flow-name="letterPageBody">
<fo:block background-color="#F1F1F1">
<xsl:apply-templates select="//region[@name='Body']" />
</fo:block>
<fo:block id="LastPage" />
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
以上的输出是(假设有两页要显示)
第一页(非空白)第1页,共3页
第二页(空白)
第三页(非空白)第3页,共3页
修改
这是使用上述xsl的文档(这是一个基于Apache-FOP编写的自定义工具)
<?xml version="1.0" encoding="utf-8"?>
<docdef version="5.1" numbering-format="1">
<scriptlinks />
<script language="JavaScript" />
<interview-data />
<template-edition channel="2" template="">
<edition-content>
<sectionmap section="Body" region="Body" />
<sectionmap section="Footer" region="Footer" />
<sectionmap section="Header" region="address" />
</edition-content>
</template-edition>
<section id="" name="Document">
<section id="" name="Body">
<frag id="" name="new text fragment" no-match="error" type="text">
<edition id="" name="new text fragment" withdrawn="False">
<edition-content>
<p xml:space="preserve">hen it is 5°F outside?</p>
<p xml:space="preserve">Wearing a cape during combat?</p>
<p xml:space="preserve">What's between the finite and the infinite?</p>
<p xml:space="preserve">What was C-3PO talking about when he said, “That’s funny, the damage doesn’t look as bad from out here.”</p>
<p xml:space="preserve">Intersperse lines from two files</p>
<p xml:space="preserve">How to find an employer who is NOT child friendly?</p>
<p xml:space="preserve">Why does Binary exist?</p>
<p xml:space="preserve">How many layers are too many layers in ArcMap?</p>
<p xml:space="preserve">Quinean Regex Tester</p>
<p xml:space="preserve">Is it safe to post one's research on web sites like Math Overflow for "peer review" before submitting to a journal?</p>
<p xml:space="preserve">Does a mourner tear one garment, or every garment he wears for a period of time?</p>
<p xml:space="preserve">Particle between city and prefecture?</p>
<p xml:space="preserve">Surrounded Countries</p>
<p xml:space="preserve">Why would security cover things like natural disasters?</p>
<p xml:space="preserve">How do exit interviews benefit the company?</p>
<p xml:space="preserve">Mystery 1970's Sci Fi Novel titled "Planet of the Gworfs" (or perhaps planet of the "Gwarfs")</p>
<p xml:space="preserve">Getting a US minor passport when you can't find one parent</p>
<p xml:space="preserve">Open source software capable of open Sketch files</p>
<p xml:space="preserve">Is it possible to spread holy water on a weapon like you do with poison?</p>
<p xml:space="preserve">more hot questions</p>
<p xml:space="preserve">question feed</p>
<p xml:space="preserve">tour help blog chat data legal privacy policy work here advertising info mobile contact us feedback</p>
<p xml:space="preserve">TECHNOLOGY LIFE / ARTS CULTURE / RECREATION SCIENCE OTHER</p>
<p xml:space="preserve">Stack Overflow</p>
<p xml:space="preserve">Server Fault</p>
<p xml:space="preserve">Super User</p>
<p xml:space="preserve">Web Applications</p>
<p xml:space="preserve">Ask Ubuntu</p>
<p xml:space="preserve">Webmasters</p>
</edition-content>
</edition>
</frag>
</section>
<section id="" name="Header">
<frag id="" name="new text fragment" no-match="error" type="text">
<edition id="" name="new text fragment" withdrawn="False">
<edition-content>
<p xml:space="preserve">Page <page-numbering value="current.page" /> of <page-numbering value="total.pages" /></p>
</edition-content>
</edition>
</frag>
</section>
<section id="" name="Footer">
<frag id="" name="new text fragment" no-match="error" type="text">
<edition id="" name="new text fragment" withdrawn="False">
<edition-content>
<p xml:space="preserve">Type your text here...</p>
</edition-content>
</edition>
</frag>
</section>
</section>
在上面
<template-edition channel="2" template="">
<edition-content>
<sectionmap section="Body" region="Body" />
<sectionmap section="Footer" region="Footer" />
<sectionmap section="Header" region="address" />
</edition-content>
示例: 'Header'映射到XSL区域'address'(对其他人来说相同)
答案 0 :(得分:2)
如果所有网页都来自单个fo:page-sequence
,则没有直接方式来实现所需的输出。
在XSL recommendation中,fo:page-number
的值被定义为页面的作品集编号特征,根据这些规则计算:
fo:page-sequence
返回的第一页上的作品集编号特征的值被限制为等于initial-page-number
特征的值。- 后续页面上的作品集编号特征的值被限制为比前一页面上的值大1。
醇>
换句话说,您可以决定从page-sequence
派生的第一页的初始编号,但连续页面会获得连续的页码(无论它们是否显示在页面中或不是)。
这是一般答案;在您的特定情况下,可以使用间接方式获得您想要的内容:
page-sequence
,以便每个内容生成一个完整页面和一个空白页面(设置force-page-count="even"
并在第二个initial-page-number="2"
上使用page-sequence
1}},等等......)采用两步法,你可以使用FOP的intermediate format feature来
(披露:我是FOP开发人员,但近年来不是很活跃)