1

我有一个巨大的 xml 文件。它正在使用 xsl 转换为 html 表。在浏览器中,它是一个带有垂直滚动条的页面。

但是当我想打印文档时,我可以看到大约 10 页。我想为每个打印页面添加表头。

示例 xml:

<page>
   <document>
      <id>100</id>
      <name>SomeName</name>
      <date>02.02.2009</date>
   </document>
   ...
</page>

和 xsl :

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/page">
   <table border="1">
      <tr>
         <th>Id</th><th>Name</th><th>Date</th>  <!-- I want to see this on every page -->
      </tr>
      <xsl:apply-templates/>
   </table>
</xsl:template>

<xsl:template match="document">
   <tr>
      <td>
         <xsl:value-of select="id"/>
      </td>
      <td>
         <xsl:value-of select="name"/>
      </td>
      <td>
         <xsl:value-of select="date"/>
      </td>
   </tr>
</xsl:template>
</xsl:stylesheet> 

我正在考虑将 XSL-FO 作为在每个页面上打印标题的工具,但据我所知,浏览器不支持它,我们需要一些特殊的软件来处理 XSL-FO 文档。

那么,将标题添加到网页的打印版本的正确方法是什么?

4

2 回答 2

2

您不想为浏览器预先分页您的内容,因为您最终会不可避免地看到浏览器的打印比例与您预期的略有不同,然后它就会看起来很糟糕。您绝对最好的选择是提供您的内容的 PDF,指定如何打印,但这不适合您正在做的事情。

不幸的是,没有任何标准化的方法可以在您请求呈现为 HTML 的打印页面时提供分页标题。

于 2009-11-11T12:48:02.007 回答
0

您可以通过结合使用<thead>部分和 CSS 来做到这一点。你错过了这个<thead>部分。看看这个链接

于 2009-11-11T12:53:37.150 回答