【发布时间】: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/… 提出并回答了