gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 02:34:16 26 4
gpt4 key购买 nike

我有一个从第 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 页

edit

这是使用上述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'(其他相同)

最佳答案

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

XSL recommendation fo:page-number 的值被定义为页面的 folio-number 特征,它是根据以下规则计算的:

  1. The value of the folio-number trait on the first page returned by the fo:page-sequence is constrained to equal the value of the initial-page-number trait.
  2. The value of the folio-number trait on subsequent pages is constrained to be one greater than the value on the immediately preceding page.

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

这是一般的答案;在您的特定情况下,可能有间接方法来获得您想要的:

  • 可以将您的内容分成不同的 page-sequence,这样每个页面都会生成一个完整页面和一个空白页面(设置 force-page-count="even" 并在第二个 page-sequence 上使用 initial-page-number="2",依此类推 ...)
  • 通过两步方法,您可以使用 FOP 的 intermediate format feature

    1. 创建没有空白页并带有所需页码的输出
    2. 在编号之间插入空白页

(披露:我是一名 FOP 开发者,虽然这几年不是很活跃)

关于xml - 如何停止计算空白页 XSLT/XSLFO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com