我正在编写XSL-FO文档,我想为某些内联元素设置最小宽度值。例如,在以下结构中
| FirstName: string1 LastName: string2 |
其中“string1”和“string2”是我的XML数据,“|”表示左右边框,我想要以下结果
| FirstName: John LastName: Smith |
| FirstName: LastName: Smith |
| FirstName: SomeVeryVeryLongFirstNameOfSomePerson LastName: Smith |
当各个人(“John”“Smith”,“”Smith“,”SomeVery ......“”Smith“)从XML加载时。
基本上,我需要这样的东西
<fo:block>
FirstName: <fo:inline min-width="50mm"> <xsl:value-of ...> </fo:inline> LastName: <fo:inline min-width="50mm"> <xsl:value-of ...> </fo:inline>
</fo:block>
但这不起作用(忽略min-width)。我在fo:block上尝试了min-width,尝试了inline-progression-dimension,block-progression-dimension,使用fo:table进行了一些解决方法,但没有任何效果,或者我做错了。我正在使用Apache FOP 1.0。
有人可以帮忙吗? 提前致谢
答案 0 :(得分:0)
我也有这个问题,经过网上搜索后,我发现了一个解决方案:使用所需宽度的fo:inline-container
和放置文字的fo:block
:
<fo:inline-container text-align="center" width="1cm">
<fo:block border-bottom="0.5pt solid #000">
<xsl:value-of select="your/xpath/selector"/>
</fo:block>
</fo:inline-container>
只需替换width
和selector
即可满足您的需求。此示例还包含我需要的底线,但并非强制性要求:如果您不需要,请从border-bottom
移除fo:block
。有关原始解决方案和详细信息,请参阅How get fixed width for inline FO?。