同一份 PDF 在一台电脑上显示正常,换一台却发现某些文字变成了方框或者被替换成了完全不同的字体——这背后的原因几乎总是和字体的"内嵌"方式有关。
两种字体处理方式
PDF 生成时,制作软件面临一个选择:
- 内嵌字体(Embedded):把字体文件本身(或者至少是用到的那部分字形数据)直接打包进 PDF 文件内部。文件体积会因此增大一些,但换任何一台电脑打开,显示效果都完全一致。
- 不内嵌,依赖系统字体:PDF 只记录"这段文字用的是 XX 字体",具体怎么显示取决于打开这份文件的电脑里有没有装这款字体。如果没装,阅读器会用一款近似的替代字体渲染,视觉效果可能有明显差异。
为什么会出现"方框"或者"乱码"
方框(Tofu)通常出现在某些特殊符号或者不常见的字符上——阅读器完全找不到任何字体能显示这个字符时,会用一个方框占位。中文、日文、韩文这类字符集庞大的文字,如果没有正确内嵌对应字体,出现方框的概率比英文高很多。
为什么专业软件通常建议"内嵌字体"
跨设备、跨系统分享的文件(几乎是所有正式文档的使用场景),内嵌字体是保证显示一致性的唯一可靠方式。很多专业排版和办公软件在导出 PDF 时会默认开启字体内嵌,尤其是涉及非拉丁字符(中文、阿拉伯文等)的文档。
字体子集化:内嵌但不让文件暴涨
直接内嵌整个字体文件(尤其是中文字体,可能几十 MB)会让文件体积暴涨。更常见的做法是"子集化"——只内嵌文档里实际用到的那些字符对应的字形数据,一份文档用到几百个汉字,子集化后可能只增加几十到几百 KB,而不是整个字体文件的几十 MB。
编辑 PDF 时字体是怎么处理的
用 LocalPDF 添加或修改文字时,中文字符会自动子集化嵌入导出的文件,不会出现方框或乱码;已有的、内嵌了原始字体的文字会保持原样。修改原有文字时的字体替代逻辑,可以参考《编辑 PDF 文字时怎样避免字体错位》一文。
了解字体原理后,添加中文内容会更放心。
打开 LocalPDF →