当源文档使用不同的字体或PDF字体字体嵌入策略时,合并来自不同来源的 PDF 通常会产生意外的结果。每个原始文件中看起来清晰的文本可能会出现乱码,被占位符符号替换,或者在合并后更改为完全不同的字体。发生这种情况是因为每个 PDF 都带有自己的字体数据,当这些字体定义发生冲突时,PDF 查看器或合并工具必须选择要使用的版本,有时会产生不幸的结果。了解在合并 PDF操作期间发生字体冲突的原因以及如何防止它们可以节省数小时的清理工作,并确保合并后的文档看起来很专业。
要点
当两个源文档嵌入相同字体的不同版本或当一个文档依赖于另一个文档缺少的字体时,PDF 合并期间会发生字体冲突。大多数冲突可以通过在合并之前标准化字体嵌入或使用正确处理字体子集的合并工具来避免。当冲突无法避免时,在合并之前将文本转换为轮廓会产生视觉上相同的结果,但代价是使文本不可搜索。

为什么合并 PDF 时会发生字体冲突
每个 PDF 都独立存储字体信息。合并两个 PDF 时,合并工具必须将每个文档的字体表协调为单个组合文件。如果两个文档在相同的内部名称下嵌入相同的字体但使用不同的字符子集,则该工具将面临冲突。 PDF 字体使用内部名称映射进行存储,这些名称映射对用户不可见,但对渲染至关重要。例如,两个不同版本的 Arial 可能具有不同的字形宽度或字符映射。当合并工具选择一个版本并将其应用于两个文档中的文本时,第二个文档中的字符可能会移动位置、更改外观或完全消失。
最常见的场景涉及部分嵌入的字体。像 Open Sans 这样的字体可能会嵌入到文档 A 中,并且仅包含该文档中使用的字符,这一过程称为子集化。文档 B 嵌入相同的字体,但具有不同的字符子集。合并后,在文档 B 中正确显示的字符可能会从组合字体表中丢失,因为合并工具保留了文档 A 的子集。 PDF 规范没有定义解决这些冲突的单一正确方法,因此不同的合并工具会以不同的方式处理这种情况。
尝试合并 PDF
无需安装。直接在您的浏览器中工作。
合并之前检查字体嵌入
避免字体冲突的最简单方法是在组合每个源文档之前检查字体的嵌入方式。大多数 PDF 阅读器可以显示字体属性。在 Adobe Acrobat 中,“字体”选项卡下的“文件属性”对话框列出了文档中使用的每种字体,并指示每种字体是完全嵌入、子集嵌入还是根本不嵌入。免费 PDF 阅读器通常通过其文档属性面板提供类似信息。
当您发现未嵌入字体时,文档正在依赖查看器的操作系统来提供该字体。即使没有合并,这也会产生风险,但当合并来自不同平台的文档时,这会成为一个更大的问题。在 Windows 上创建的引用 Calibri 的文档与在可能未安装 Calibri 的 Mac 上创建的文档合并时,其外观会有所不同。最安全的做法是确保在合并之前所有字体都完全嵌入到每个源文档中。大多数文字处理程序和 PDF 创建工具在其导出或另存为 PDF 设置中都包含字体嵌入选项。
使用正确处理字体子集的合并工具
并非所有合并工具都以相同的方式处理字体数据。高质量合并工具将分析每个源文档的字体表,检测命名冲突,并智能地合并字符子集或在内部重命名冲突的字体以保持两个版本可用。这会生成一个组合字体表,其中包含所有源文档中的所有字符,这是理想的结果。
低质量的合并工具会走捷径。有些只是连接原始 PDF 数据流而不协调字体对象,这会生成一个看似可以正确打开但在某些页面上无法正确呈现文本的文件。其他应用程序对引用冲突字体名称的任何文本应用默认字体替换,这就是合并的 PDF 最终以 Courier 或通用衬线字体的文本的方式。选择 PDF 合并工具时,请查找明确提及字体处理的文档,或者使用您知道包含子集字体的一对文档来测试该工具,然后再依靠它来完成重要工作。 WukongPDF 的合并工具在对象级别处理字体表,以解决命名冲突并保留每个源文档中文本的原始外观。
将文本转换为大纲作为最后的手段
当无法通过嵌入或工具选择解决字体冲突时,将文本转换为轮廓可提供可靠的视觉解决方案。此过程将每个字符从可编辑文本对象更改为矢量图形。视觉外观与原始外观相同,但文本不再可搜索、选择或编辑。转换为轮廓也会增加文件大小,因为每个字符变成一组矢量路径坐标而不是紧凑的字符代码。
这种方法在印刷制作工作流程中很常见,其中视觉保真度比可编辑性更重要。设计师通常会在发送图稿进行打印之前将字体转换为轮廓,以避免字体许可问题,并确保输出看起来相同,无论打印店是否安装了所需的字体。对于文档工作流程,当您将少量视觉关键页面(例如具有自定义排版的封面页)合并到字体一致性不太重要的较大文本文档中时,值得考虑权衡。
对源文档中的通用字体进行标准化
避免字体冲突的最可持续的方法是标准化团队创建的文档中使用的字体。当每个报告、提案和发票都使用相同的核心字体并启用完全嵌入时,PDF 合并就变得可预测。大多数系统上都安装了 Arial、Times New Roman 和 Calibri 等常见字体,并干净地嵌入 PDF 中。如果您的组织使用自定义公司字体,请确保每个 PDF 创建工具都配置为嵌入完整字体而不是子集,并验证生成 PDF 的所有计算机上是否安装了相同的字体版本。
对于经常合并来自外部来源的 PDF 的组织(例如律师事务所组装证据或会计师事务所编译客户文档),字体冲突预防应成为文档准备过程中记录的步骤。在合并之前检查和标准化每个文档的字体需要几分钟的时间,并且消除了在字体问题出现后进行故障排除和重新创建合并文件的大量时间投入。
常见字体冲突症状及解决方案
| 症状 | 可能的原因 | 修复 |
|---|---|---|
| 文本被点或框替换 | 字体缺失,无法替换 | 嵌入缺少的字体或转换为轮廓 |
| 字体更改为不同的字体 | 字体名称冲突,使用的版本错误 | 重新嵌入具有唯一内部名称的字体 |
| 字符移位或重叠 | 版本之间不同的字体规格 | 在所有源文档中使用相同的字体版本 |
| 单词中间缺少一些字符 | 缺少这些字符的子集嵌入 | 使用完整字体嵌入而不是子集化 |
| 文本看起来正确,但无法搜索 | 文本已转换为轮廓 | 接受权衡或使用嵌入字体重新创建 |
共享之前验证合并的输出
合并后,以 150% 到 200% 的缩放比例滚动浏览整个合并文档,并检查页面示例是否存在字体问题。请特别注意靠近源文档连接边界的页面,因为这些过渡处经常出现字体渲染问题。如果合并的 PDF 用于打印,请打印一张包含多个源文档中的文本的测试页,并验证所有字体是否在纸张上正确呈现。屏幕渲染可以掩盖打印输出中可见的细微字体问题。
对于涉及数十个源文件的大型合并作业,请考虑将合并分成五到十个文档的批次。如果出现字体问题,这样可以更轻松地隔离哪个源文件引入了字体问题。每批次通过目视检查后,将各批次合并在一起,形成最终的合并文档。
常见问题
即使所有源 PDF 单独看起来都很好,为什么合并后字体会发生变化?
每个 PDF 查看器在显示单个文件时独立读取字体数据。合并后,组合字体表可能包含同一字体名称的冲突定义。 PDF 查看器必须选择一种定义,如果它选择的版本与一个源文档期望的版本不同,则该部分中的文本将以不同的方式呈现,即使两个源文件本身看起来都是正确的。
压缩合并的 PDF 是否可以解决字体问题?
不会。压缩通过优化图像数据和删除冗余对象来减小文件大小,但它不会协调字体表或解决命名冲突。在某些情况下,激进的压缩可能会删除压缩器错误地识别为未使用的字体数据,从而使字体问题变得更糟。在压缩合并的文档之前,请始终解决字体问题。
有没有一种PDF格式可以完全避免字体冲突?
PDF/A 档案格式要求所有字体完全嵌入,无需子集化。合并全部 PDF/A 格式的文档可以消除字体冲突,因为每种字体的每个字符都保证出现在每个源文件中。然而,由于完整的嵌入要求,PDF/A 文件比标准 PDF 更大,这可能是存储或传输的一个问题。
尝试合并 PDF
无需安装。直接在您的浏览器中工作。
