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

iText7调用List.setListSymbol()设置特殊字符列表符号不显示问题

解决iText7中列表符号☐不显示的问题

问题出在默认PDF字体(如Helvetica)不支持☐这个Unicode特殊字符,而">"属于基础ASCII字符,所以能正常渲染。要解决这个问题,需要为列表符号指定包含该字符字形的字体,具体步骤如下:

  1. 加载支持☐字符的字体文件
    可以使用系统自带的中文字体(比如宋体、微软雅黑),或者使用支持多语言的开源字体(如Noto Sans)。

  2. 创建PdfFont对象并应用到列表符号
    不要直接用字符串设置列表符号,而是通过Text对象绑定字体后再设置。

代码示例

方法一:使用系统字体(以宋体为例)

// 加载宋体字体文件,路径根据系统调整
PdfFont simsunFont = PdfFontFactory.createFont("C:/Windows/Fonts/simsun.ttc,0", PdfEncodings.IDENTITY_H);

// 创建列表并设置带字体的符号
List list = new List();
list.setListSymbol(new Text("☐").setFont(simsunFont));

// 添加列表项
list.add(new ListItem("第一项内容"));
list.add(new ListItem("第二项内容"));

方法二:使用iText内置的Noto Sans字体(需确保依赖引入)

// 加载Noto Sans字体
PdfFont notoFont = PdfFontFactory.createFont(FontConstants.NOTO_SANS, PdfEncodings.IDENTITY_H);

// 设置列表符号
List list = new List();
list.setListSymbol(new Text("☐").setFont(notoFont));

这样设置后,PDF就能正常显示☐作为列表符号了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:25:16