You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:45:34