Apache FOP如何实现两个fo:block块字段同一行显示
问题原因
fo:block属于XSL-FO的块级元素,默认渲染规则就是独占一行,多个平级的fo:block会自动从上到下换行排列,这是当前代码分两行显示的核心原因- 第二个
fo:block里写入的
是换行符实体,会额外触发一次强制换行 - 之前使用
fo:inline报错,是因为fo:inline是行内元素,不能直接作为fo:table-cell的直接子节点,必须嵌套在块级元素内部才能正常解析
修复方案
把两部分内容合并到同一个fo:block容器中,需要单独设置灰色、加粗样式的「Lot: 」文本用fo:inline包裹,同时删掉多余的换行符实体即可,实现代码如下:
<fo:table-cell> <fo:block font-size="30px"> <fo:inline color="#808080" font-weight="bold"> <xsl:text>Lot: </xsl:text> </fo:inline> <xsl:value-of select="$test/lot"/> </fo:block> </fo:table-cell>
渲染后即可得到预期的单行效果:
Lot: some_value
内容的提问来源于stack exchange,提问作者pecvari
相关产品推荐
相关产品推荐

