当你打开一个 PDF 文档时,每一页都充满了空白的矩形、小正方形,或者文本应该所在的行相同的占位符符号,而不是文字。文档结构完好无损。布局看起来正确。但每一个字母、数字和标点符号都被一个空心框所取代。这是字体替换失败,这意味着 PDF 正在尝试使用 PDF 阅读器无法使用的字体来显示文本。文本数据仍在文件中。它尚未被删除或损坏。问题完全出在渲染层,这使得它可以修复。

是什么导致字体替换产生空矩形
原因比症状所暗示的要简单。
每个 PDF 都包含有关如何显示文本的说明。每段文本都引用一种特定的字体,该字体要么在创建 PDF 时嵌入在 PDF 中,要么预计在查看它的系统上可用。嵌入字体后,PDF 包含字体数据的副本,并且无论查看设备上安装了什么字体,任何 PDF 阅读器都可以正确显示文本。当未嵌入字体时,PDF阅读器必须在本地系统上找到匹配的字体。如果不存在匹配项,读者将替换后备字体。大多数时候,这种方法足够有效:文本以略有不同但可读的字体显示。
当替代机制本身崩溃时,就会发生空矩形故障。发生这种情况的原因有多种。 PDF 可能使用与操作系统识别的任何标准字体名称不匹配的内部名称来引用字体。该字体可能是自定义或专有字体,其字符编码是标准后备字体无法映射的。 PDF 文件可能包含损坏或不完整的字体嵌入,其中包含字体数据但在文件传输过程中被损坏,使读者无法对其进行解码。在每种情况下,读者都知道文本应该出现在特定位置,但它没有要渲染的字形数据,因此它会绘制缺失字符的通用符号:空矩形(ISO,“ISO 32000-2:2020,PDF 中的字体处理”,2020)。
尝试修复 PDF
无需安装。直接在您的浏览器中工作。
检查字体是否嵌入或缺失
第一个诊断步骤是确定 PDF 是否包含嵌入字体,如果包含,则确定它们是否完整。在可以显示文档属性的查看器(例如 Adobe Acrobat)中打开 PDF。导航到文件、属性、字体。字体列表显示文档引用的每种字体以及每种字体是嵌入的还是嵌入的子集。嵌入字体显示其全名,后面带有 (Embedded) 或 (Embedded Subset)。非嵌入字体仅显示字体名称,没有嵌入指示符。如果丢失文本使用的字体被列为未嵌入,则问题在于查看设备没有安装这些字体。
如果字体被列为嵌入的,但文本仍然显示为矩形,则嵌入的字体数据可能已损坏。当 PDF 通过不可靠的网络连接传输、存储在出现故障的存储设备上或由不完全支持所使用的字体嵌入格式的软件处理时,可能会发生这种情况。字体数据存在于文件中但无法解码。文档属性面板可能仍将字体显示为嵌入的,因为即使字体二进制数据已损坏,嵌入声明也完好无损。
修复非嵌入字体问题
对于从未嵌入字体的 PDF,修复路径是在查看设备上安装丢失的字体或重新创建嵌入字体的 PDF。当您知道缺少哪些字体并且可以合法获取它们时,安装字体就可以了。当缺少的字体是您已经拥有但尚未安装在当前设备上的常见商业字体(例如 Helvetica 或 Times New Roman)时,这很实用。当缺少的字体是自定义公司字体或昂贵的许可字体时,它不太实用。
WukongPDF 的修复 PDF 工具可以通过分析文件中的文本编码和字体引用来重新处理存在字体显示问题的 PDF。对于广泛使用的非嵌入字体,该工具可以替换保留文本内容和近似外观的紧密匹配。对于必须准确保留原始文本的文档,从启用字体嵌入的源文档重新创建 PDF 是最可靠的长期解决方案。大多数文字处理程序和设计应用程序在其 PDF 导出对话框中都有一个标记为“嵌入字体”或“嵌入所有字符”的设置。启用此设置可以防止字体替换成为问题。
从嵌入字体损坏的 PDF 中恢复文本
当嵌入字体损坏时,文本数据通常保持完整,即使无法显示。指定哪些字母出现在何处的字符代码与告诉渲染器如何绘制这些字母的字体字形数据分开存储。即使视觉渲染失败,您也可以从 PDF 中提取文本内容。通过单击并拖动来复制看似空的文本区域。即使什么都看不到,文本也可以被选择。将其粘贴到文本编辑器中。如果出现可读文本,则文本数据完好无损,仅字体渲染被破坏。
如果复制粘贴出现乱码,则可能是字体编码不标准。在这种情况下,请使用专用 PDF 工具中的 PDF 文本提取功能,该功能尝试使用多种编码方案对文本进行解码。然后,可以将提取的文本放入具有正确嵌入字体的新文档中。原始 PDF 作为布局的视觉参考,而提取的文本则提供修复版本的内容。这种两步恢复可以保留信息及其表示形式。
防止您创建的 PDF 中出现字体问题
最有效的预防措施是在创建 PDF 时始终嵌入字体。在 Microsoft Word 中,该选项位于“文件”、“选项”、“保存”中,在共享此文档时保持保真度下。选中在文件中嵌入字体。在 Adobe InDesign 和类似的布局应用程序中,PDF 导出对话框包括一个字体嵌入部分,您可以在其中指定要嵌入的字体。嵌入完整字符集而不是子集可确保即使稍后编辑文档并使用原始子集之外的字符,它们也能正确显示。
对于从其他人处收到的 PDF,请将字体呈现问题视为可修复的问题,而不是永久性损坏。几乎可以肯定该文本仍在文件中。 修复 PDF 方法是诊断字体是否丢失或损坏,提取可恢复的文本,然后安装丢失的字体或使用嵌入字体重建文档。充满空矩形的 PDF 看起来令人震惊,但这些矩形后面的内容通常是完整的,并且可以通过正确的步骤恢复。
非拉丁和专业脚本中的字体替换
字体替换失败对于非拉丁文字(例如中文、日文、韩文、阿拉伯文和西里尔文)尤其常见。这些书写系统使用的字符集远大于拉丁字母,支持它们的字体也相应更大,使得它们在 PDF 创建过程中更有可能被子集或省略。在具有完整 CJK 字体支持的系统上创建的 PDF 在缺乏这些字体的系统上可能会显示为空矩形。这同样适用于数学、乐谱和语言学中使用的特殊字符集。使用这些脚本的文档应始终完全嵌入字体,而不是子集,以确保跨平台兼容性。
当收到缺少非拉丁字体的 PDF 时,安装特定字体通常是唯一可靠的修复方法。为拉丁文字设计的字体替换算法在非拉丁字符集上表现不佳,因为字形形状差异太大,无法进行有意义的替换。识别原始文档中使用的确切字体、从合法来源获取该字体并将其安装在查看系统上,可以将文档恢复到其预期外观。 PDF 字体生态系统完全支持 Unicode,但该支持取决于渲染器可用的字体。对于复杂的书写系统来说,缺失的字体是任何巧妙的替代都无法完全弥补的差距。
空矩形问题是用户可能遇到的视觉上最令人担忧的 PDF 问题之一,但它也是最容易修复的问题之一。与根本无法打开文件的结构损坏不同,字体渲染失败意味着文件结构完好无损并且内容存在。渲染器根本无法绘制它知道应该存在的内容。有条不紊地解决问题,检查嵌入状态,识别丢失的字体,并恢复文本内容,将看起来被破坏的 PDF 变成完全可用和可读的 PDF。破坏的外观是渲染层创建的幻觉。通过正确的诊断步骤和修复工具,几乎总是可以恢复下面的数据。
当您第一次遇到文本所在的空矩形时,它们会令人震惊。了解其背后的字体替换机制后,它们成为一个可管理的技术问题,具有清晰的诊断路径和可靠的修复方法。恐慌逐渐消退,问题的解决开始了。
尝试修复 PDF
无需安装。直接在您的浏览器中工作。
