如何全局替换PDF中的字体

Posted

技术标签:

【中文标题】如何全局替换PDF中的字体【英文标题】:how to globally replace font in a PDF 【发布时间】:2013-07-15 09:33:12 【问题描述】:

是否可以使用 Adob​​e Acrobat 或其他工具全局替换 PDF 中的字体?

我该怎么做?

【问题讨论】:

【参考方案1】:

如果没有看到您的特定文件,很难说这肯定会奏效。但是,通常字体是这样定义的:

/Resources << 
  /Font << /F13 1 0 R >> 
>>

1 0 obj << 
  /Type /Font
  /Subtype /Type1 
  /BaseFont /Helvetica
>> endobj

字体资源随后被用作/F13 12 Tf,无论何时使用它绘制文本。

如果您要更改定义中的/BaseFont,它将影响该字体资源的所有使用。

【讨论】:

对于不理解这一点的人。这是在十六进制编辑器中显示的内容。我更改了字体,即:/Arial->/OpenSans 并更改了文件大小,当我在 Nitro Pro 中打开它时,它说它已损坏,但幸运的是它修复了它。【参考方案2】:

替换 PDF 中的字体通常不是一个好主意。您不应期望类似于替换字体的行为,例如MS Word 文档。在 PDF 中,单个字形或字形运行是绝对定位的。在生成 PDF 时,此定位基于所用字体中字形的相应宽度(和其他指标)。当您替换字体时,字形的位置将保持不变,但通常字形的宽度会与原始字体的宽度不同。这将导致文本格式失真,如下所示:

【讨论】:

这当然是正确的,但不是问题的答案。想要替换字体是有正当理由的(例如,用更新/修改版本或具有相同字体指标的克隆替换字体)。【参考方案3】:

您可以将 PDF 上传到 Google 云端硬盘,然后将其打开。打开后,您会看到“在 Google 文档中打开”选项:点击它。

加载完成后,选择所有文本 (CTRL+A),然后将上方菜单中的字体更改为您想要的字体。完成后,您可以执行文件 -> 下载 -> PDF。 Google Docs 会发挥它的魔力,给你一个带有修改字体的 PDF。如果字体大小不同,将自动添加新页面。

【讨论】:

以上是关于如何全局替换PDF中的字体的主要内容,如果未能解决你的问题,请参考以下文章

通过将 PDF 中的所有字体字形转换为轮廓形状来替换它们

如何将PDF中的黑色字体改成红色

如何更改数据表中的导出 PDF 字体大小?

如何在 Xamarin.Form 应用程序中使用 text 属性为项目中的所有控件全局设置 FontFamily?

Python:如何替换pdf中的文本

更改 rmarkdown 生成的 PDF 中的字体