Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果表内容使用xslt扩展到PDF中的下一页,则不会出现表尾_Xslt_Xsl Fo - Fatal编程技术网

如果表内容使用xslt扩展到PDF中的下一页,则不会出现表尾

如果表内容使用xslt扩展到PDF中的下一页,则不会出现表尾,xslt,xsl-fo,Xslt,Xsl Fo,如果表扩展到下一页,则不显示表尾 继续文本应位于第一页表格的末尾。与正确显示的表格标题类似。每当表格扩展到下一页时,“cont”应出现在第一页的末尾 示例XML: 2222 曼尼什语 2223 桑托什 2224 纳文 2225 普尼思 2226 巴拉斯 2227 维杰 示例XSL: 桌子 表(续) 部 标题 样本输出: 结合这一点和关于表格页眉的另一个答案(),下面是一个完整的示例,显示了当表格继续时,表格页眉和页脚作为标记被拉入页脚区域 <xsl:stylesheet v

如果表扩展到下一页,则不显示表尾

继续文本应位于第一页表格的末尾。与正确显示的表格标题类似。每当表格扩展到下一页时,“cont”应出现在第一页的末尾

示例XML:


2222
曼尼什语
2223
桑托什
2224
纳文
2225
普尼思
2226
巴拉斯
2227
维杰
示例XSL:


桌子
表(续)
部
标题
样本输出:

结合这一点和关于表格页眉的另一个答案(),下面是一个完整的示例,显示了当表格继续时,表格页眉和页脚作为标记被拉入页脚区域

    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:fo="http://www.w3.org/1999/XSL/Format"
        xmlns:rx="http://www.renderx.com/XSL/Extensions"
        xmlns:psmi="http://www.CraneSoftwrights.com/resources/psmi"
        xmlns:exsl="http://exslt.org/common">


        <xsl:template match='NewDataSet'>
            <fo:root>
                <fo:layout-master-set>
                    <fo:simple-page-master master-name="my-page">
                        <fo:region-body margin="1in"/>
                        <fo:region-after extent="1in"/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference="my-page">
                    <fo:static-content flow-name="xsl-region-after">
                       <!-- This retrieves the marker into the footer -->
                        <fo:block>
                           <fo:retrieve-marker retrieve-class-name="table" retrieve-position="last-ending-within-page"/>
                        </fo:block>
                    </fo:static-content>
                    <fo:flow flow-name="xsl-region-body">
                       <!-- This sets the marker content for the footer -->
                        <fo:block>
                            <fo:marker marker-class-name="table">
                                Table continued on next page
                            </fo:marker>
                        </fo:block>
                            <fo:table-and-caption>
                                <fo:table rx:table-omit-initial-header="true">  
                                    <fo:table-column column-width="25mm"/>
                                    <fo:table-column column-width="25mm"/>
                                    <fo:table-header  keep-together="always">
                                        <fo:table-row>
                                            <fo:table-cell number-columns-spanned="2"><fo:block text-align="center" font-style="italic" margin="5pt" keep-together="always">
                                                <xsl:text>Table (Cont.)</xsl:text>
                                            </fo:block>
                                        </fo:table-cell>
                                        </fo:table-row>
                                        <fo:table-row>
                                        <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                            <fo:block font-weight="bold">Department</fo:block>
                                        </fo:table-cell >
                                        <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                            <fo:block font-weight="bold">Title</fo:block>
                                        </fo:table-cell>
                                        </fo:table-row>
                                    </fo:table-header>
                                    <fo:table-body>
                                        <fo:table-row>
                                            <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                                <fo:block font-weight="bold">Depaartment</fo:block>
                                            </fo:table-cell >
                                            <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                                <fo:block font-weight="bold">Title</fo:block>
                                            </fo:table-cell>
                                        </fo:table-row>
                                        <xsl:apply-templates/>
                                    </fo:table-body>
                                </fo:table>
                            </fo:table-and-caption>
                        <!-- IMPORTANT -- This clears the marker so it does not appear on pages where the table ends -->
                        <fo:block keep-with-previous.within-page="always">
                            <fo:marker marker-class-name="table"/>
                        </fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
        </xsl:template>
        <xsl:template match="DefaultView">
            <fo:table-row>
                <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                    <fo:block>
                        <xsl:value-of select="Department"/>
                    </fo:block>
                </fo:table-cell>
                <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                    <fo:block>
                        <xsl:value-of select="Title"/>
                    </fo:block>
                </fo:table-cell>
            </fo:table-row>
        </xsl:template>
    </xsl:stylesheet>

下页续表
表(续)
部门
标题
分装
标题
结果是:

如果你有很多页面,那就是:

如果少于一页,则为:


示例XSLT中没有
fo:table footer
。(另外,如果将
fo:table body
放在
xsl:for each
之外,则只会生成一个
fo:table body
,实际上只需要一个。)注意:与省略表的起始页眉不同,省略最后一个页脚并不等同。如果你想在页脚上写上“下一页表格继续”,你可以使用标记并拉入页脚区域,然后清除表格末尾的标记。嗨,Kevin,你能提供一些例子来清除表格页脚中的标记吗?这样做对我们很有帮助。提前谢谢。请看答案,我为您添加了评论。您可以在表格后面看到,将标记设置为空元素非常简单。这将使其成为“空白”。因此,它不会将任何内容拖到页脚。你会在桌子周围重复这句话。。。将标记设置为连续文本,设置表格格式,将标记设置为“无”。对于以下数据,页脚也位于页面末尾。只有当表内容扩展到下一页时,才应出现页脚。如果表内容未扩展到下一页,则该页上只有表不应出现页脚内容。2222 Manish 2223 Santosh感谢您的更新。如果表内容未扩展到下一页,则页脚内容将出现。只有当特定表内容扩展到下一页时,页脚内容才会出现。上图中第2页的页脚内容在哪里?你可能没有清除标记。查看XSL中表的最末尾,您将看到标记被设置为“无内容”
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                              xmlns:fo="http://www.w3.org/1999/XSL/Format"
                              xmlns:rx="http://www.renderx.com/XSL/Extensions"
                              xmlns:psmi="http://www.CraneSoftwrights.com/resources/psmi"
                              xmlns:exsl="http://exslt.org/common">
  <xsl:template match='NewDataSet'>
    <fo:root>
      <fo:layout-master-set>
        <fo:simple-page-master master-name="my-page">
          <fo:region-body margin="1in"/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="my-page">
        <fo:flow flow-name="xsl-region-body">
        <fo:table>  
              <fo:table-column column-width="25mm"/>
              <fo:table-column column-width="25mm"/>
              <fo:table-header  keep-together="always">
                        <fo:block text-align="center" font-style="italic" margin="5pt" keep-together="always">
                            <xsl:text>Table</xsl:text>
                        </fo:block>
                </fo:table-header>
        </fo:table>
          <fo:table-and-caption>  
            <fo:table rx:table-omit-initial-header="true">  
              <fo:table-column column-width="25mm"/>
              <fo:table-column column-width="25mm"/>
              <fo:table-header  keep-together="always">
                        <fo:block text-align="center" font-style="italic" margin="5pt" keep-together="always">
                            <xsl:text>Table (Cont.)</xsl:text>
                        </fo:block>
                </fo:table-header>

              <fo:table-header >
                <fo:table-row>
                  <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
                    <fo:block font-weight="bold">Dept</fo:block>
                  </fo:table-cell >
                  <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
                    <fo:block font-weight="bold">Title</fo:block>
                  </fo:table-cell>
                </fo:table-row>
              </fo:table-header>
              <xsl:for-each select="*">
                <fo:table-body>
                  <fo:table-row>
                    <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
                      <fo:block>
                        <xsl:value-of select="Department"/>
                      </fo:block>
                    </fo:table-cell>
                    <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" align="left">
                      <fo:block>
                        <xsl:value-of select="Title"/>
                      </fo:block>
                    </fo:table-cell>
                  </fo:table-row>
                </fo:table-body>
              </xsl:for-each>
            </fo:table>
          </fo:table-and-caption>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </xsl:template>
</xsl:stylesheet>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:fo="http://www.w3.org/1999/XSL/Format"
        xmlns:rx="http://www.renderx.com/XSL/Extensions"
        xmlns:psmi="http://www.CraneSoftwrights.com/resources/psmi"
        xmlns:exsl="http://exslt.org/common">


        <xsl:template match='NewDataSet'>
            <fo:root>
                <fo:layout-master-set>
                    <fo:simple-page-master master-name="my-page">
                        <fo:region-body margin="1in"/>
                        <fo:region-after extent="1in"/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference="my-page">
                    <fo:static-content flow-name="xsl-region-after">
                       <!-- This retrieves the marker into the footer -->
                        <fo:block>
                           <fo:retrieve-marker retrieve-class-name="table" retrieve-position="last-ending-within-page"/>
                        </fo:block>
                    </fo:static-content>
                    <fo:flow flow-name="xsl-region-body">
                       <!-- This sets the marker content for the footer -->
                        <fo:block>
                            <fo:marker marker-class-name="table">
                                Table continued on next page
                            </fo:marker>
                        </fo:block>
                            <fo:table-and-caption>
                                <fo:table rx:table-omit-initial-header="true">  
                                    <fo:table-column column-width="25mm"/>
                                    <fo:table-column column-width="25mm"/>
                                    <fo:table-header  keep-together="always">
                                        <fo:table-row>
                                            <fo:table-cell number-columns-spanned="2"><fo:block text-align="center" font-style="italic" margin="5pt" keep-together="always">
                                                <xsl:text>Table (Cont.)</xsl:text>
                                            </fo:block>
                                        </fo:table-cell>
                                        </fo:table-row>
                                        <fo:table-row>
                                        <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                            <fo:block font-weight="bold">Department</fo:block>
                                        </fo:table-cell >
                                        <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                            <fo:block font-weight="bold">Title</fo:block>
                                        </fo:table-cell>
                                        </fo:table-row>
                                    </fo:table-header>
                                    <fo:table-body>
                                        <fo:table-row>
                                            <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                                <fo:block font-weight="bold">Depaartment</fo:block>
                                            </fo:table-cell >
                                            <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                                                <fo:block font-weight="bold">Title</fo:block>
                                            </fo:table-cell>
                                        </fo:table-row>
                                        <xsl:apply-templates/>
                                    </fo:table-body>
                                </fo:table>
                            </fo:table-and-caption>
                        <!-- IMPORTANT -- This clears the marker so it does not appear on pages where the table ends -->
                        <fo:block keep-with-previous.within-page="always">
                            <fo:marker marker-class-name="table"/>
                        </fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
        </xsl:template>
        <xsl:template match="DefaultView">
            <fo:table-row>
                <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                    <fo:block>
                        <xsl:value-of select="Department"/>
                    </fo:block>
                </fo:table-cell>
                <fo:table-cell border-color="black" border-style="solid" width = "85pt" border-width="0.4pt" padding="3pt" >
                    <fo:block>
                        <xsl:value-of select="Title"/>
                    </fo:block>
                </fo:table-cell>
            </fo:table-row>
        </xsl:template>
    </xsl:stylesheet>