PDF 字体缺失、显示方框或乱码:原因与四种处理办法
PDF 里的字变成方框、乱码,或者换台电脑就变样,根因大多是字体没有嵌入。本文说明嵌入、转曲、重新导出、栅格化四种办法的适用场景与代价,附分辨率与文件体积对照,以及交付前的自检步骤。
先分清你遇到的是哪一种
字体问题的表现差别很大,对应的原因也不一样。最常见的三种:字变成空心方框或豆腐块;字能显示但换了一种字体,版式跟着错位;整段文字变成黑色实心块或者干脆消失。这三种的严重程度和处理成本完全不同,先认准是哪一种。
判断的快捷办法是看别人的电脑。同一份 PDF 发给同事,对方打开正常而你这里是方框,问题在你这边缺字体;对方也是方框,那是文件本身没嵌入字体。用不同的阅读器打开(系统自带阅读器和浏览器各开一次),也能很快区分是文件问题还是软件问题。
| 表现 | 原因 | 影响 |
|---|---|---|
| 空心方框、豆腐块 | 字体未嵌入,本机也没有该字体 | 高,内容不可读 |
| 字体被替换、标题折行 | 用替代字体渲染,字宽字距不同 | 中,版式错位但可读 |
| 整段黑块或文字消失 | 字体文件损坏或子集提取出错 | 高,需要修复 |
| 只有生僻字是方框 | 字符子集未包含该字 | 低,只影响个别字 |
| 打印正常屏幕显示方框 | 打印机做了字体替换 | 低,只是显示问题 |
浏览器内置的 PDF 阅读器字体回退做得比较全,Chrome 和 Edge 都自带一套回退字体。遇到方框先用浏览器打开一次,如果浏览器里正常,说明只是本机阅读器缺字体,换个阅读器就能看。
为什么会缺:嵌入这件事
PDF 可以只存字形编号和字体名,让打开者的系统去提供字形,这样文件很小;也可以把字体文件本身塞进 PDF,这样谁打开都一样,代价是文件变大。微软雅黑完整字库大约 15MB,思源黑体更大,全嵌入明显不现实,所以通常只嵌入用到的那几十到几百个字符,这叫子集化。
子集化带来一个具体问题:文件里只嵌入了当时用过的字。后来有人在这份 PDF 上加批注、填表单,输入了一个原先没出现过的字,这个字就没字形可用,显示为方框。所以只有新增内容是方框,是子集化的典型症状。
还有一种情况是字体许可。部分商用字体,尤其一些方正、汉仪的老字体,在字体文件里写了嵌入限制标志,Word 和 Acrobat 都会拒绝嵌入并给出提示,导出时只能不嵌。这类文件换到没装该字体的机器上必然出问题,稳妥办法是换字体或者转曲。
在 Acrobat 里打开文件 → 属性 → 字体,能看到每个字体后面标着已嵌入或已嵌入子集。只要有一个显示未嵌入,这份文件换机器就有风险。
办法一:转曲,一劳永逸但有代价
转曲是把文字从字符变成矢量轮廓。转完之后文件不再依赖任何字体,任何设备、任何阅读器打开都一样,也不会再出现方框。这是交付印刷、对外发布最稳的做法,设计行业交付印刷稿默认都要转曲。
代价要清楚:转曲后文字不能再选中、不能复制、不能搜索,全文检索和 OCR 都会失效,无障碍阅读器也读不出内容。文件体积通常会变大,因为每个字都变成了路径数据。另外转曲不可逆,一定要在确认内容不再修改之后再做,并且保留原始可编辑文件。
什么时候不该转曲:需要被人复制引用的文档、需要全文检索的归档资料、还要在 PDF 里继续编辑文字的文件。这些场景应该走嵌入字体而不是转曲。一份几十页的纯文字报告转曲后,读者发现复制不了,体验会很差。
- 适合转曲:印刷稿、对外发布的正式文件、不希望被改字的内容。
- 不适合转曲:需要检索的归档材料、要被引用复制的报告、还要继续编辑的稿子。
- 转曲前另存一份带文字层的原文件,转曲不可逆。
- 转曲后检查文件体积,涨得太多说明原文件用了复杂字形。
- 转曲后确认视觉上和原来一致,重点看标点、数字和英文。
转曲后仍然可以做 OCR 补一层文字,这样既保版式又能搜索。需要检索的转曲文件用这个办法补回来,比重新排版省事得多。
办法二:补嵌字体,或者重新导出
如果还能拿到原始文件(Word、PPT、设计源文件),最干净的做法是回去重新导出,并在导出设置里勾上嵌入字体。Word 的路径是文件 → 选项 → 保存 → 勾选将字体嵌入文件,建议同时勾上不嵌入常用系统字体,避免文件无谓地变大。
只有 PDF 没有源文件时,补嵌字体比较受限:工具需要本机装了对应字体才能把它嵌进去。所以顺序是先确认本机有这个字体,再用工具做嵌入处理。如果本机也没有,就得先找到并安装字体——注意商用字体的授权范围,别为了修一份文件把字体分发给了不该拿到的人。
Mac 上导出的 PDF 字体问题偏多,因为某些版本的 Office for Mac 字体嵌入支持不完整,中日韩字体尤其明显。遇到这种情况,把文件拿到 Windows 版 Word 或 PowerPoint 里打开再导出一次,通常就能正常嵌入。
| 可用条件 | 做法 | 效果 |
|---|---|---|
| 有原始 Word、PPT 或设计源文件 | 重新导出并勾选嵌入字体 | 最好,文字仍可编辑 |
| 只有 PDF,本机装有该字体 | 用工具补嵌字体 | 良好,文字仍可编辑 |
| 只有 PDF,本机也没有该字体 | 先安装字体再补嵌,或转曲 | 可用,注意字体授权 |
| 字体带嵌入许可限制 | 换字体或转曲 | 可用,可能需要重排版式 |
重新导出的文件要和原 PDF 逐页对比一遍。换软件导出经常带来细微的版式变化,尤其是页眉页脚和分页位置,别只看前两页就发出去。
办法三:栅格化,最后一道兜底
前面都不管用,或者文件要发给完全不可控的外部对象,栅格化是最粗暴但最有效的方案:把整页渲染成位图,从此和字体彻底无关。代价是文字变成图片,不能复制不能搜索,放大到一定程度会模糊,文件体积也会明显增大。
分辨率要算清楚。A4 页面在 150dpi 下大约 1240×1754 像素,灰度 JPEG 一页大概 200KB;300dpi 下是 2480×3508,彩色一页能到 1MB 以上。100 页的文件按 300dpi 彩色栅格化会变成几百 MB,基本不可用了,这种规模建议按 200dpi 灰度处理。
| 用途 | 建议 dpi | A4 单页大致体积 |
|---|---|---|
| 屏幕阅读、网页展示 | 150 dpi | 150 至 300 KB |
| 普通打印、内部流转 | 200 dpi | 400 至 800 KB |
| 要看清小字、扫描存档 | 300 dpi | 1 至 3 MB |
| 印刷级输出 | 400 dpi 以上 | 3 MB 以上 |
| 黑白文档用灰度或二值 | 300 dpi | 200 至 600 KB |
栅格化前一定要确认这份文件后续不需要复制文字。合同、报告、论文这类要被引用的文档栅格化之后,对方用起来会很痛苦。
交付前的字体自检
发出去之前花两分钟做一遍检查,能避免对方打开就是方框的尴尬。检查顺序是:先用本机阅读器看,再换浏览器看,最后发到手机上看。三个终端都正常,基本就可以放心交付了。手机这一环最容易被忽略,而恰恰是字体问题暴露最多的地方。
如果是要长期归档的正式文件,建议转成 PDF/A 再交付。PDF/A 归档格式强制要求字体全部嵌入,转换过程会主动把未嵌入的字体报出来,等于帮你做了一次体检。转完之后再校验一次状态,比五年后打开文件发现全是方框要强得多。
- 在 Acrobat 或类似工具里查看字体属性,确认全部显示已嵌入。
- 换一个阅读器打开,确认显示一致。
- 发到手机上打开一次,手机字体库最小,问题最容易在这里暴露。
- 需要长期保存的,转成 PDF/A 并校验一次。
- 确认无误后另存最终版本,把中间处理的副本清理掉。
收到的 PDF 有方框而你只是要看内容,最快的办法是换 Chrome、Edge 打开,或者用手机和平板看。这几个终端的字体回退做得比较全,能救急。
文中提到的在线工具
以下工具全部在浏览器本地运行,文件不会上传到服务器。
常见问题
为什么我的 PDF 在自己电脑正常,别人打开是方框?
因为字体没有嵌入文件,你电脑上有这个字体所以显示正常,对方电脑上没有。解决办法是在导出时勾选将字体嵌入文件。Word 在文件 → 选项 → 保存里,PowerPoint 同样在保存选项里。如果提示该字体无法嵌入,说明这个字体有许可限制,换成思源黑体这类开源字体最省事。
转曲之后还能改字吗?
不能。转曲后文字已经变成矢量图形,不再是字符,没法用文字工具编辑。所以转曲前一定要确认内容是最终版,并且保留一份未转曲的原文件。如果转曲后确实要改,只能改动那一块的图形路径,或者回到原文件改完重新导出再转曲一次。
PDF 显示方框,打印出来会不会也是方框?
不一定。很多打印机和打印驱动会用自己的字体替换,屏幕上方框的内容打印出来可能正常,但字体和版式会和原稿不一致,行距字宽变化容易导致折行错位。反过来也可能打印出来同样是方框。要确认只能实际打一页出来看,别拿屏幕显示推测打印结果。
嵌入字体会让文件变大多少?
取决于嵌入方式和字体大小。只嵌入用到的字符子集,通常增加几十 KB 到几百 KB,一份中文文档增加 200KB 左右很常见。完整嵌入一个中文字库可能增加 10MB 以上,一般没必要。Word 里勾选不嵌入常用系统字体,可以避免把宋体、黑体这类系统自带字体也塞进去。
人名里的生僻字变成方框怎么办?
这是子集化的典型问题:原文件里没有这个字,字体子集里自然没有它的字形。如果是你要填的表单,先确认本机装了支持生僻字的字体,比如部分大字库的宋体,填完后重新嵌入字体。如果是收到的文件,只能让对方换字体重导,或者把这一处改成图片说明,没有别的捷径。
PDF/A 和普通 PDF 在字体上有什么区别?
PDF/A 是归档格式,强制要求所有字体必须嵌入,并且字体的嵌入许可要允许无限制使用。所以转 PDF/A 的过程会主动暴露未嵌入的字体,相当于做了一次字体体检。它还会禁止外部依赖、要求包含色彩信息。代价是部分带透明效果或特殊特性的文件转换时会报错,需要逐条处理提示。