kri*_*ngh 5 xslt xsl-fo apache-fop
只是为了确保我想与您分享我对 FOP vre 1.0 的理解,FOP 使用自动换行算法,即当数据溢出表格单元格的宽度时,FOP 会查找数据中的空白,如果它找到白色空格,然后它将从最近的空格溢出的数据包装到该单元格的下一行。
但是如果数据没有空格怎么办,那么 FOP 就无法包装数据。这是我面临的问题。
我写了这段代码。
<fo:table-cell border="solid">
<fo:block hyphenate="true" language="en" wrap-option="wrap">
<xsl:value-of select="welcomeMsg"></xsl:value-of>
</fo:block>
</fo:table-cell>
Run Code Online (Sandbox Code Playgroud)
但它从表格单元格溢出,而不是换行,因为welcomeMsg 是一个长字符串,中间没有空格。我需要将welcomeMsg 包裹在表格单元格内。
Apache FOP 实现了Unicode UAX #14换行算法。因此,如果一个单词(或很长的数字)无法被破坏并因此溢出表格单元格,那是因为该算法。通常的解决方法是将零宽度空格 ( ​) 插入到您知道可能导致溢出的字段中。这可以通过 XSLT 轻松完成。另请参阅:如何强制换行表条目