【问题标题】:Can we wrap the text to next line when it exceeds table cell length in XSL-FO?当文本超过 XSL-FO 中的表格单元格长度时,我们可以将文本换行到下一行吗?
【发布时间】:2015-12-18 14:11:54
【问题描述】:

如果文本超过 XSL-FO 中表格单元格的长度,我需要将文本换行到下一行。

XSL-FO 示例:

    <fo:table-row>
       <fo:table-cell padding-bottom="3px" text-align="right" width="4cm" margin="0" margin-right="0.27cm">
        <fo:block-container>
            <fo:block >
                <fo:inline>Herewith: </fo:inline>
            </fo:block>
        </fo:block-container>
    </fo:table-cell>
    <fo:table-cell  padding-bottom="3px" text-align="left" width="7cm" margin="0" margin-left="-0.22cm">
        <fo:block-container>
            <fo:block>
                <fo:inline  font-family="FrutigerLTStd-Bold" font-weight="bold">
                    <xsl:value-of select="herewith"/>
                </fo:inline>                                                    
            </fo:block>
        </fo:block-container>
    </fo:table-cell>

这里如果表格单元格的值 somethingxhsjdjfjkshkjkh" 值超过,它不会将其包装到下一行,直到我们在值之间留出一些空格。我尝试使用 wrap-option="wrap"。但是如果值中只有空格,然后将其带到下一行。

有人可以帮忙吗?

【问题讨论】:

  • 您使用的是哪个渲染引擎? FOP?天线屋格式器?其他?你看过stackoverflow.com/questions/4350788/…吗?
  • 使用当前显示的标记,fo:block-container 和第一个 fo:inline 是多余的。如果将@font-family@font-weight 移动到包含fo:block,那么第二个fo:inline 也将变得多余。设置font-family="FrutigerLTStd-Bold"font-weight="bold" 也几乎肯定是多余的,因为“FrutigerLTStd-Bold”无论如何都会是粗体,而且如果你有font-family="FrutigerLTStd"font-weight="bold",你的格式化程序应该能够找到粗体变体。
  • 正如@potame 所指出的,这个问题在stackoverflow.com/questions/4350788/… 提出并回答了

标签: xml xsl-fo


【解决方案1】:

如果您的格式化程序支持断字并且文本能够断字,那么启用断字会有所帮助。

如果允许您更改列宽,则启用自动表格布局 (http://www.w3.org/TR/xsl11/#fo_table) 可能会让格式化程序挤压其他列的宽度并增加此列的宽度,以便此文本不会溢出.

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 2017-12-15
    • 2016-09-09
    • 1970-01-01
    相关资源
    最近更新 更多