xsl-fo从第一页删除页码



新手问题,但是我真的找不到适合我的pdf的浏览器。我想把页码从第二页开始,我该怎么做呢?

这是我的xsl文件

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="catalog">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4" page-height="7in" page-width="15in">
<fo:region-body margin="1in" background-color="#f2f2f2"/> 
<fo:region-before extent="1in" background-color="#dadada"  border-before-style ="solid"/>
<fo:region-after extent="1in" background-color="#c1c1c1 "  border-after-style  ="solid"/>
<fo:region-start extent="1in" background-color="#c1c1c1 "/>
<fo:region-end extent="1in" background-color="#c1c1c1"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4" initial-page-number="1">

<fo:static-content flow-name="xsl-region-start">
<fo:block>
<xsl:text>BEST MUSIC</xsl:text>
</fo:block>
</fo:static-content>

<fo:static-content flow-name="xsl-region-end">
<fo:block>
<xsl:text>CATALOG</xsl:text>
</fo:block>
</fo:static-content>

<fo:static-content flow-name="xsl-region-after">
<fo:block text-align="center">
Page <fo:page-number/>
of <fo:page-number-citation ref-id="terminator"/>
</fo:block>
</fo:static-content>

<fo:flow flow-name="xsl-region-body">
<fo:table>
<fo:table-column column-width="60mm" />
<fo:table-column column-width="60mm" />
<fo:table-column column-width="60mm" />
<fo:table-column column-width="60mm" />
<fo:table-column column-width="60mm" />
<fo:table-column column-width="60mm" />
<fo:table-column column-width="60mm" />
<fo:table-header border="1 solid black">
<fo:table-row background-color="lightyellow" border="1 solid black">
<fo:table-cell>
<fo:block font-weight="bold">Title</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-weight="bold">Artist </fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-weight="bold">Company</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-weight="bold">Country</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-weight="bold">Year</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-weight="bold">Price</fo:block>
</fo:table-cell>

</fo:table-row>
</fo:table-header>
<xsl:for-each select="cd">
<fo:table-body border="1 dotted black">

<fo:table-row>
<fo:table-cell>
<fo:block>
<xsl:value-of select="title"/> 
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:value-of select="artist"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:value-of select="company"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:value-of select="country"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:value-of select="year"/> 
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:value-of select="price"/> 
</fo:block>
</fo:table-cell>

</fo:table-row>
</fo:table-body>
</xsl:for-each>
</fo:table>
<fo:block id="terminator"></fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>

我希望页码留在页脚部分。[![输入图像]电流输出:[1][1]: [![输入图像期望输出][2]][2]

电流输出[1]:https://i.stack.imgur.com/JN3ar.png期望输出[2]:https://i.stack.imgur.com/paCVh.png

您的页脚来自<fo:static-content flow-name="xsl-region-after">。每个页面都使用单个fo:simple-page-master,因此每个页面都有页脚。

您可以为第一页添加第二个fo:simple-page-master,该页面要么没有fo:region-after,要么具有不同region-name值的fo:region-after:

<fo:simple-page-master master-name="First" page-height="7in" page-width="15in">
<fo:region-body margin="1in" background-color="#f2f2f2"/> 
<fo:region-before extent="1in" background-color="#dadada"  border-before-style ="solid" />
<fo:region-after region-name="First-footer" extent="1in" background-color="#c1c1c1 "  border-after-style  ="solid"/>
<fo:region-start extent="1in" background-color="#c1c1c1 "/>
<fo:region-end extent="1in" background-color="#c1c1c1"/>
</fo:simple-page-master>

为第一页使用fo:simple-page-master,添加一个fo:page-sequence-master,为第一页选择正确的fo:simple-page-master:

<fo:page-sequence-master master-name="PageMaster">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="First" page-position="first" />
<fo:conditional-page-master-reference master-reference="A4" />
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>

您的fo:page-sequence应该参考fo:page-sequence-master,而不是直接指向固定的fo:simple-page-master:

<fo:page-sequence master-reference="PageMaster" initial-page-number="1">

也看到:

  • https://www.w3.org/TR/xsl11/页面位置
  • https://www.w3.org/TR/xsl11/fo_page-sequence-master
  • https://www.w3.org/TR/xsl11/fo_region-after
  • https://stackoverflow.com/a/65701865/4092205
  • https://stackoverflow.com/a/53204584/4092205
  • https://stackoverflow.com/a/28382375/4092205

最新更新