替换 PDF 文档中的字体

big*_*ose 13 fonts pdf editing

我有一个带有可编辑表单字段的 PDF 文档(未加密)。但是,这些字段的字体已损坏:缺少一些字形,因此当我输入文本时会出现一些空白。

如何修改 PDF 文档——我无法访问用于创建它的源文档——以用不同的字体代替损坏的字体

有问题的字体是 Adob​​e 的Caliban Regular,我可以看到嵌入在文档中。显示空白的字形包括“i”、“T”、“V”;也许其他我还没有发现。

我还有另一个使用 Caliban 的类似文档,它确实显示正确,包括上面列为损坏的字形。如果有人能告诉我如何从一个 PDF 中获取字体并将其替换为现有的 PDF,那将是一个解决方案。

我目前正在使用:

我会对其他免费软件PDF 编辑工具(无论是否零价)感兴趣,如果它们能帮助完成这项任务。

Kur*_*fle 5

替换嵌入到 PDF 中的字体极其困难。我不知道任何免费的-在语音(GPL许可)或自由的,在啤酒(免费)软件,可以的可能做到这一点(通过取消先嵌入字体,然后重新嵌入替代字体)。我只知道有两种商业产品可以做到这一点:callassoftware.com 的pdfToolbox4和 Enfocus 的PitStop(当然,肯定还有其他产品,但我不知道它们,这两个是这里的市场领导者)。

这是一种使用自由软件从 PDF 中提取嵌入字体的方法。请注意,只有在字体许可证未禁止的情况下,您才可以在法律上这样做。在 Ghostscript 源代码存储库中有一个名为 PostScript 程序实用程序extractFonts.ps,它可以在这里提供帮助:

  1. 安装 Ghostscript。使用最新版本 8.71。
  2. 下载文件 http://svn.ghostscript.com/ghostscript/trunk/gs/toolbin/extractFonts.ps
  3. 您可能想阅读下载文件中包含的评论。
  4. 在 DOS 框 (cmd.exe) 中运行以下命令:

    gswin32c.exe ^
        -q ^
        -dNODISPLAY ^
        C:/path/to/extractFonts.ps ^
        -c "(c:/path/to/your-pdf-file.pdf) extractFonts quit"
    
    Run Code Online (Sandbox Code Playgroud)
  5. 请注意该命令可能会发出的任何警告或错误消息。
  6. 成功提取的字体现在将使用与 PDF 中相同的名称存储在您的当前目录中。

(请注意,在此处提取字体并不意味着从 PDF 中删除字体,而是创建字体文件,这些字体文件是嵌入到 PDF 中的字体的副本。)


这是另一个可能有助于实现您想要的目标的构建块。您可能想要解压缩 PDF 的所有压缩部分/流,以便您可以使用简单的文本编辑器更轻松地编辑文件。(警告:编辑 PDF 不是一项简单直接的任务 --- 您的编辑工作将需要有关 PDF 文件格式内部结构的大量知识和智慧。)

这个技巧还使用了来自 Ghostscript 的 Subversiontoolbin子目录的实用程序。

  1. 下载文件http://svn.ghostscript.com/ghostscript/trunk/gs/toolbin/pdfinflt.ps
  2. 您可能希望阅读下载文件中的评论。
  3. 在 DOS 框 (cmd.exe) 中运行以下命令:

    gswin32c.exe ^
         -- ^
         c:/path/to/pdfinflt.ps ^
         c:/path/to/your-pdf-file.pdf ^
         c:/path/to/your-pdf-file-decompressed.pdf
    
    Run Code Online (Sandbox Code Playgroud)

此命令将尝试解压缩所有' flat '压缩的流。(如果您不走运,您的文件还将包含使用其他压缩方法(例如'zip')的流,此命令将保持不变。)