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

使用Apache FOP 2.7生成PDF时fo:inline边框重叠问题

解决XSL-FO中fo:inline边框重叠问题

在使用apache-xmlgraphics-fop 2.7生成PDF时,fo:inline元素内容换行后会出现边框重叠的问题——这是因为fo:inline属于行内级元素,每一行文本都会单独渲染边框,导致行与行之间的边框叠加在一起。

方案一:改用fo:inline-container

将fo:inline替换为fo:inline-container,它会把包裹的内容作为一个整体容器处理,边框只会渲染在容器外围,不会随换行重复生成,是最可靠的解决方式:

<fo:block margin-top="4px">
    <fo:inline-container border-style="solid" border-width="1px" border-color="#E8EDF7" padding="2px" fox:border-radius="3pt">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eu justo at quam hendrerit congue ac ac magna. Maecenas tincidunt vulputate justo, ut tempus lorem pulvinar a. Nulla fermentum metus sit amet metus tempus pretium. In massa sem, vestibulum a lectus eu, efficitur imperdiet odio.
    </fo:inline-container>
</fo:block>

方案二:调整fo:inline的边框渲染逻辑

如果必须保留fo:inline,可以通过设置行内边框的上下样式为hidden来避免重叠,但这种方式在复杂排版场景下兼容性较差:

<fo:block margin-top="4px">
    <fo:inline border-style="solid" border-width="1px" border-color="#E8EDF7" padding="2px" fox:border-radius="3pt" 
              border-top-style="hidden" border-bottom-style="hidden">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eu justo at quam hendrerit congue ac ac magna. Maecenas tincidunt vulputate justo, ut tempus lorem pulvinar a. Nulla fermentum metus sit amet metus tempus pretium. In massa sem, vestibulum a lectus eu, efficitur imperdiet odio.
    </fo:inline>
</fo:block>

内容的提问来源于stack exchange,提问作者hungrygik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:56:10