XSL: force-page-count="end-on-even" 在偶数空白页显示页码
XSL: force-page-count="end-on-even" displays page number on the even blank page
所以我有这种情况:我正在使用天线房从 xml/xsl 生成 pdf。问题是生成的 pdf 包含多个 N 文档,每个文档都有 X 页。如果文档以奇数页结束打印,则必须在文档末尾插入空白页,以便下一个文档从新的 sheet 开始。为此,我使用:force-page-count="end-on-even",但插入的空白页有页码,我不想显示该页码,因为页面上没有内容。
这是 xsl 部分:
<xsl:template match="document">
<fo:page-sequence master-reference="myDoc" initial-page-number="1" force-page-count="end-on-even" >
<fo:static-content flow-name="xsl-region-after" font-size="8pt" font-family="Arial" >
<fo:block>
<fo:block text-align="right" margin-right="10mm">
<fo:inline text-align="right">
Page: <fo:page-number /> of <fo:page-number-citation-last ref-id="{generate-id(.)}"/>
</fo:inline>
</fo:block>
<xsl:variable name="footervar" select=".//footertxt" /> <!-- Gets text betwen <footertxt> tags in XML file -->
<fo:block text-align="left" margin-left="15mm">
<fo:inline>
<xsl:value-of select="$footervar" />
</fo:inline>
</fo:block>
</fo:block>
</fo:static-content>
</fo:page-sequence>
</xsl:template>
xml 部分如下所示:
<document>
<footertxt> </footertxt>
<section>
<paragraf>1</paragraf>
</section>
</document>
<document>
<footertxt> </footertxt>
<section>
<paragraf>2</paragraf>
</section>
<pagebreak />
<section>
<paragraf>3</paragraf>
</section>
</document>
知道如何从空白页中删除页码吗?
谢谢
您可以设置一个fo:page-sequence-master
(https://www.w3.org/TR/xsl11/#fo_page-sequence-master) that contains an fo:repeatable-page-master-alternatives
(https://www.w3.org/TR/xsl11/#fo_repeatable-page-master-alternatives) containing multiple fo:conditional-page-master-reference
(https://www.w3.org/TR/xsl11/#fo_conditional-page-master-reference)。第一个 fo:conditional-page-master-reference
可以有 blank-or-not-blank="blank"
并引用没有 fo:xsl-region-after
.
的 fo:simple-page-master
更简单地说,您可以这样做:
<fo:simple-page-master master-name="BlankPage"
page-height="265mm"
page-width="215mm">
<fo:region-body region-name="blank" />
</fo:simple-page-master>
...
<fo:page-sequence-master master-name="myDoc">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="BlankPage"
blank-or-not-blank="blank" />
<fo:conditional-page-master-reference master-reference="OddPage"
odd-or-even="odd" />
<fo:conditional-page-master-reference master-reference="EvenPage"
odd-or-even="even" />
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
所以我有这种情况:我正在使用天线房从 xml/xsl 生成 pdf。问题是生成的 pdf 包含多个 N 文档,每个文档都有 X 页。如果文档以奇数页结束打印,则必须在文档末尾插入空白页,以便下一个文档从新的 sheet 开始。为此,我使用:force-page-count="end-on-even",但插入的空白页有页码,我不想显示该页码,因为页面上没有内容。 这是 xsl 部分:
<xsl:template match="document">
<fo:page-sequence master-reference="myDoc" initial-page-number="1" force-page-count="end-on-even" >
<fo:static-content flow-name="xsl-region-after" font-size="8pt" font-family="Arial" >
<fo:block>
<fo:block text-align="right" margin-right="10mm">
<fo:inline text-align="right">
Page: <fo:page-number /> of <fo:page-number-citation-last ref-id="{generate-id(.)}"/>
</fo:inline>
</fo:block>
<xsl:variable name="footervar" select=".//footertxt" /> <!-- Gets text betwen <footertxt> tags in XML file -->
<fo:block text-align="left" margin-left="15mm">
<fo:inline>
<xsl:value-of select="$footervar" />
</fo:inline>
</fo:block>
</fo:block>
</fo:static-content>
</fo:page-sequence>
</xsl:template>
xml 部分如下所示:
<document>
<footertxt> </footertxt>
<section>
<paragraf>1</paragraf>
</section>
</document>
<document>
<footertxt> </footertxt>
<section>
<paragraf>2</paragraf>
</section>
<pagebreak />
<section>
<paragraf>3</paragraf>
</section>
</document>
知道如何从空白页中删除页码吗? 谢谢
您可以设置一个fo:page-sequence-master
(https://www.w3.org/TR/xsl11/#fo_page-sequence-master) that contains an fo:repeatable-page-master-alternatives
(https://www.w3.org/TR/xsl11/#fo_repeatable-page-master-alternatives) containing multiple fo:conditional-page-master-reference
(https://www.w3.org/TR/xsl11/#fo_conditional-page-master-reference)。第一个 fo:conditional-page-master-reference
可以有 blank-or-not-blank="blank"
并引用没有 fo:xsl-region-after
.
fo:simple-page-master
更简单地说,您可以这样做:
<fo:simple-page-master master-name="BlankPage"
page-height="265mm"
page-width="215mm">
<fo:region-body region-name="blank" />
</fo:simple-page-master>
...
<fo:page-sequence-master master-name="myDoc">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="BlankPage"
blank-or-not-blank="blank" />
<fo:conditional-page-master-reference master-reference="OddPage"
odd-or-even="odd" />
<fo:conditional-page-master-reference master-reference="EvenPage"
odd-or-even="even" />
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>