首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止计算空白页XSLT/XSLFO

如何停止计算空白页XSLT/XSLFO
EN

Stack Overflow用户
提问于 2016-01-12 06:33:51
回答 1查看 784关注 0票数 3

我有一个版面,从第1页开始,然后继续。现在的问题是,它也计算空白页。有没有办法强制停止空白页计数。

电流输出

第1页(非空白)-第6页第1页

第2页(空白)

第3页(非空白)-6第3页

第4页(空白)

第5页(非空白)-6第5页

第6页(空白)

预期输出:

第1页(非空白)-第3页第1页

第2页(空白)

第3页(非空白)-第3页第2页

第4页(空白)

第5页(非空白)-第3页

第6页(空白)

代码

代码语言:javascript
复制
<?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>

上面的输出是(假设有两个页面要显示)

第一页(非空白)3第1页

第二页(空白)

第三页(非空白)3第3页

编辑

这是使用上述xsl的文档(这是一个基于Apache-FOP的自定义工具)。

代码语言:javascript
复制
<?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>

在上面

代码语言:javascript
复制
<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”(其他地区相同)

EN

回答 1

Stack Overflow用户

发布于 2016-01-17 08:32:58

如果所有的页面都来自一个fo:page-sequence,那么就没有直接的方法来实现您想要的输出。

XSL建议中,fo:page-number的值定义为页面的折叠数特征,该特征是根据以下规则计算的:

  1. fo:page-sequence返回的第一页上的折叠数特征的值被约束为等于initial-page-number特征的值。
  2. 后续页上的折叠号特征的值被限制为大于前一页上的值。

换句话说,您可以确定从page-sequence派生的第一个页面的初始编号,但是连续页得到连续的页码(不管它们是否显示在页面中)。

这是一般的答案;在你的具体情况下,可以有间接的方法来得到你想要的东西:

  • 可以将内容分离为不同的page-sequence,以便每个页面生成一个完整的页面和一个空白的页面(设置force-page-count="even"并在第二个page-sequence上使用initial-page-number="2",等等)。
  • 使用两步方法,您可以使用FOP的中间格式特征
代码语言:javascript
复制
1. create the outpt with no blank pages, with the desired page numbers
2. insert blank pages between the numbered ones

(披露:我是FOP开发人员,尽管最近几年不太活跃)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34737006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档