我正在使用Apache FOP生成PDF。当且仅当超过表格单元长度时,我想包装文本。我尝试使用wrap-option =“wrap”。它在找到空间本身时将它分开。它不会查看表格单元格的长度是否超出。
<fo:table width="33%" table-layout="fixed" position="fixed" margin-top="-21.5%" margin-left="68.5%">
<fo:table-body>
<fo:table-row>
<fo:table-cell padding-bottom="3px" text-align="left" width="5cm" margin-left="1.2cm">
<fo:block-container>
<fo:block wrap-option="wrap">
<fo:inline font-family="TimesNewRoman" font-weight="bold">
<xsl:value-of select="test/test1"/>
</fo:inline>
</fo:block>
</fo:block-container>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
例如:我有一个如下字符串:
TEST 1 TEST 2 TEST 3
当我使用上面的XSLT生成PDF时,它显示如下
TEST
1
TEST
2
TEST
3
尽管如此,它有更多的宽度,它是分裂和显示。
我想要展示的是
TEST 1 TEST ..if length exceeds the length
2 TEST 3
有人可以帮我吗?
答案 0 :(得分:1)
在start-indent="0pt"
上添加fo:table-body
:
<fo:table width="33%" table-layout="fixed"
position="fixed" margin-top="-21.5%" margin-left="68.5%">
<fo:table-body start-indent="0pt">
<fo:table-row>
<fo:table-cell padding-bottom="3px" text-align="left" width="5cm">
<fo:block>
<fo:inline font-family="TimesNewRoman" font-weight="bold"
> TEST 1 TEST 2 TEST 3 </fo:inline>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
fo:table/@margin-left
设置了在为每个start-indent
的内容计算start-indent
特征时使用的继承fo:table-cell
值。有关详细信息,请参阅https://www.w3.org/TR/xsl11/#refine-margin-space-indent。
此外,fo:table-cell/@margin-left
,fo:block-container
和fo:block/@wrap-option
未添加任何内容。