PDF 字体嵌入
说明 PDF 导出与打印时字体是否嵌入文件的三级控制(调用参数、模板设置、全局设置)、各取值含义,以及不嵌入时的字体替换规则。
概述
PDF 文件可以把用到的字体一起写入文件(嵌入),也可以只记录字体名、由阅读端或打印端自行查找字体(不嵌入)。嵌入后文件在任意设备上显示一致,代价是文件变大;不嵌入文件很小,但版面依赖阅读端字体,字宽不同会造成换行和对位偏差。
字体嵌入只作用于 PDF 导出,以及由 PDF 转出的打印。Word、Excel、CSV 不受影响。
功能入口
有三处可以设置,优先级从高到低:
| 级别 | 位置 | 取值 |
|---|---|---|
| 导出调用参数 | 导出 PDF 接口的请求参数 embedFont |
true、1、embed、yes 表示嵌入;false、0、no-embed、noembed、no 表示不嵌入;其他值或不传视为未指定 |
| 模板设置 | 设计器「报表设置」(单据模板为「页面设置」)>「页面设置」页签 >「导出设置」>「PDF嵌入字体」 | 「跟随全局」(默认)、「强制嵌入」、「不嵌入」 |
| 全局设置 | 管理端「系统设置」>「报表」>「导出设置」>「PDF导出嵌入字体文件」,配置键 app.report.export.pdf.embed-font |
开启(默认)、关闭 |
逐级判断:调用参数已指定则采用调用参数;否则模板设置为「强制嵌入」或「不嵌入」时采用模板设置;模板为「跟随全局」时采用全局设置。

操作步骤
- 打开设计器,点击顶栏「报表设置」(单据模板为「页面设置」)。
- 在「页面设置」页签滚动到「导出设置」。
- 「PDF嵌入字体」选择「强制嵌入」,需要小文件时选择「不嵌入」,希望统一由管理员控制时保持「跟随全局」。
- 保存报表。
不嵌入时的字体处理
选择不嵌入时,除 Helvetica、Courier、Times 三类西文字体外,所有字体名都会被替换为内置的中文 PDF 字体 STSong-Light(宋体风格)。也就是说模板里配置的黑体、微软雅黑等在 PDF 中不会保留,字宽随之变化,可能引起换行位置和单元格内容宽度的变化。
注意:对位要求严格的单据(处方、票据、套打)应使用「强制嵌入」,避免字体被替换后字宽改变导致内容错位。
注意事项
提示:打印预览与插件打印使用的也是服务端生成的 PDF,因此同样受本设置影响。
提示:嵌入的字体来自服务端可用字体。需要使用系统外字体时,先在管理端「字体管理」页面点击「上传自定义字体」,再在模板中选用。