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

使用iTextPDF将HTML转PDF时border-radius圆角样式不生效的解决方法

解决iTextPDF中HTML表格border-radius不生效的问题

我之前也踩过iText XMLWorker处理CSS圆角的坑,其实核心原因是XMLWorker对CSS3的border-radius支持非常有限,尤其是表格(<table>)和单元格(<td>)这类元素的圆角,基本无法直接通过CSS生效。下面给你两种可行的解决方案:

方案一:改用iText 7的pdfHTML(推荐)

XMLWorker已经是iText的旧版组件,官方现在主推pdfHTML来处理HTML转PDF,它对CSS3的支持完善很多,border-radius这类属性可以正常解析。

步骤:

  1. 先引入pdfHTML的依赖(以Maven为例):
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>html2pdf</artifactId>
    <version>5.0.0</version> <!-- 建议使用最新稳定版 -->
</dependency>
  1. 替换原来的XMLWorker代码,用pdfHTML的API来解析:
import com.itextpdf.html2pdf.HtmlConverter;
import java.io.FileOutputStream;
import java.io.StringReader;

// ... 你的其他初始化代码(比如Document、PdfWriter的创建)
HtmlConverter.convertToPdf(new StringReader(template), new FileOutputStream("output.pdf"));

用这个方法,你原来HTML里的border-radius属性就能正常渲染出圆角表格了。

方案二:用XMLWorker的变通实现(如果必须保留旧版)

如果因为项目限制不能升级到pdfHTML,可以用外层容器裁剪+表格边框调整的方式模拟圆角:

修改你的HTML代码,给表格套一个带圆角和overflow:hidden的<div>,同时去掉表格本身的border,调整单元格的边框只保留内部线条:

<div style="border-radius:20px; border:1px solid #909090; overflow:hidden;">
    <table style="border-collapse: collapse; width:100%;">
        <tbody>
            <tr>
                <td style="padding-left: 16px; padding-top: 11px; padding-bottom: 11px; border-right:1px solid #909090;">
                    <div><p>$text1 </p></div>
                </td>
                <td style="padding-left: 16px; padding-top: 11px; padding-bottom: 11px; border-right:1px solid #909090;">
                    <div><p>$text2 </p></div>
                </td>
                <td style="padding-left: 16px; padding-top: 11px; padding-bottom: 11px;">
                    <div><p>$text3 </p></div>
                </td>
            </tr>
        </tbody>
    </table>
</div>

原理是外层div的圆角和overflow:hidden会把表格的四个角裁剪掉,同时表格只保留内部的竖边框,视觉上就和圆角表格一致了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:57:41