我有一个XSLT样式表转换为HTML
<table class="tblOrders">
<col width="20em" />
<col width="380em" />
<col />
<col />
<col width="80em" />
<col width="30em" />
<col width="30em" />
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
<th>Column4</th>
<th>Column5</th>
<th>column6</th>
<th>column7</th>
</tr>
<xsl:for-each select="transfer/items">
<tr>
<td>
<xsl:value-of select="Column1"/>
</td>
<td class="alnLeft">
<font size="-1">
<xsl:value-of select="Column2"/>
</font>
</td>
<td nowrap="nowrap">
<xsl:value-of select="Column3"/>
</td>
<td class="alnRight">
<xsl:value-of select="Column4"/>
</td>
<td class="alnRight">
<xsl:value-of select="Column5"/>
</td>
<td>
<xsl:value-of select="Column6"/>
</td>
<td class="bdrBottom">
<xsl:text> </xsl:text>
</td>
</tr>
</xsl:for-each>
</table>
<div class="floatRight" style="margin:10em 0em 0em 0em">
<table id="tblFooterLastPage">
<tr>
<th>Initials:</th>
<td class="bdrBottom">
<xsl:text> </xsl:text>
</td>
</tr>
</table>
</div>
要求 页脚应显示在底部的每个页面上。
问题 Column2具有自动换行或换行的可能性。我需要显示所有数据。注意XSL foreach。如果循环中有太多项目,则页脚将显示在新页面上。这不是我想要的。我希望在第一页上显示页脚,以及每个附加页面。
我认为会解决这个问题
- 创建一个类似于始终显示的Microsoft Word的页脚
- 或者,如果更容易,检测断线发生的位置并将其计为2行而不是1.
XSLT本身是否支持潜在的解决方案?你有什么建议? (如果需要OO语言,我更喜欢C#)
请注意,此内容专为打印输出而设计。
答案 0 :(得分:1)
如果你真的想要打印,那么(X)HTML不是答案。你可以看看XSL Formatting Objects。但是你正在崎岖不平。
XSLT并不真正了解输出的页面和换行符。它只是一种树转换语言。您不应该担心XSLT功能,而应该担心输出语言的功能。我在上面提出了FO,但你也可以尝试其他东西,比如DocBook或MS Word。当你找到一个很好的解决方案时,请在这里发表评论,因为我很想复制它!