XSLT - 检测换行或换行符

时间:2011-04-05 13:19:27

标签: c# html visual-studio-2010

我有一个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#)

请注意,此内容专为打印输出而设计。

1 个答案:

答案 0 :(得分:1)

如果你真的想要打印,那么(X)HTML不是答案。你可以看看XSL Formatting Objects。但是你正在崎岖不平。

XSLT并不真正了解输出的页面和换行符。它只是一种树转换语言。您不应该担心XSLT功能,而应该担心输出语言的功能。我在上面提出了FO,但你也可以尝试其他东西,比如DocBook或MS Word。当你找到一个很好的解决方案时,请在这里发表评论,因为我很想复制它!