如何使用iText7(8.0.0)为表格添加边框圆角?
解决iText7表格边框圆角不生效的问题
iText7支持边框圆角功能,但直接给Table对象设置SetBorderRadius不会生效,因为表格的边框是由内部单元格的边框组合渲染的。你需要调整代码,将带圆角的边框应用到外层表格的单元格上,而非表格本身。
修改后的代码如下:
private static Cell CreateGeneralInformationCell() { var generalInformation = new Cell().SetBorder(Border.NO_BORDER); var outerTable = new Table(1) .SetWidth(UnitValue.CreatePercentValue(100)) .SetMarginTop(5f); var innerTable = new Table(1) .SetBorder(Border.NO_BORDER) .SetPadding(5f); var companyInfo = new Paragraph("test") .SetBold() .SetFontSize(12); var addressInfo = new Paragraph("test") .SetFontSize(10); innerTable.AddCell(new Cell().Add(companyInfo).SetBorder(Border.NO_BORDER)); innerTable.AddCell(new Cell().Add(addressInfo).SetBorder(Border.NO_BORDER)); // 关键修改:给外层表格的单元格设置带圆角的边框 var outerCell = new Cell().Add(innerTable) .SetBorder(new SolidBorder(new DeviceGray(0), 1f)) .SetBorderRadius(new BorderRadius(5f)); outerTable.AddCell(outerCell); generalInformation.Add(outerTable); return generalInformation; }
核心修改点:
- 移除外层
Table的SetBorder和SetBorderRadius配置 - 创建外层表格的单元格时,直接给该单元格设置带圆角的边框和半径
- 确保内部单元格和表格都保持无边框,避免干扰圆角效果
这样调整后,表格的圆角边框就能正常渲染了。
内容的提问来源于stack exchange,提问作者Svinjica
相关产品推荐
相关产品推荐

