使用OpenHTMLToPDF C#库生成PDF时文字字母无间距问题如何解决
问题原因
该字母粘连问题是OpenHTMLToPDF库的字体渲染模块对字距调整(Kerning)规则适配异常导致,常见触发场景如下:
- 依赖库默认字体做自动fallback时,
<strong>标签对应的加粗字重加载了无完整字距调整表的后备字体,部分西文字母对(比如An、rt)的间距计算出现0值错误 - 自定义CSS中
font-kerning、letter-spacing属性设置和库的渲染逻辑冲突 - 1.x版本的OpenHTMLToPDF存在已知的加粗文本字距计算偏移bug
排查解决步骤
- 优先将OpenHTMLToPDF升级到2.2.0及以上的最新稳定版,该版本已修复多个已知的西文字距渲染问题
- 给全局和加粗标签明确指定字距规则完整的字体,禁用自动fallback的异常字体,可参考如下CSS配置:
* { font-family: "Arial", "Helvetica", sans-serif; font-kerning: normal; letter-spacing: normal !important; } strong { font-weight: 700; font-family: inherit; }
- 如果你使用自定义嵌入字体,需要确认字体文件包含完整的kern/GPOS字距调整表,不要使用经过精简去除了字距信息的小体积字体包
- 若上述方案都不生效,可给加粗文本加极小的正字距做兼容,配置
strong {letter-spacing: 0.01em;}即可,视觉上几乎无感知但可解决粘连问题
内容的提问来源于stack exchange,提问作者Bhanu Reddy
相关产品推荐
相关产品推荐

