我有一个巨大的xml文件。它正在被xsl转换为html表。在浏览器中,它是一个带有垂直滚动条的单页。
但是当我想要打印文档时,我可以看到大约10页。我想为每个打印页面添加表格标题。
示例xml:
<page>
<document>
<id>100</id>
<name>SomeName</name>
<date>02.02.2009</date>
</document>
...
</page>
xsl for it:
<?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文档。
那么,将标题添加到网页的打印版本的正确方法是什么?
答案 0 :(得分:2)
您不希望为浏览器预分页您的内容,因为您将不可避免地得到的打印机的打印尺寸与您预期的略有不同,然后它看起来会很糟糕。您绝对的最佳选择是提供内容的PDF,指明如何打印,但这与您正在做的不相符。
不幸的是,当您在呈现为HTML的打印页面上请求时,没有任何标准化方法来提供分页标题。
答案 1 :(得分:0)
您可以使用<thead>
部分和CSS的组合来完成此操作。您错过了<thead>
部分。看看这个link。