替换 PDF 文档中的字体

替换 PDF 文档中的字体

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

我怎么能够修改 PDF 文档— 我无法访问用于创建它的源文档 —使用其他字体替换损坏的字体

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

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

我目前正在使用:

我对其他感兴趣免费软件PDF 编辑工具(是否零价格),看看他们是否愿意帮助完成这项任务。

答案1

非常困难代替嵌入到 PDF 中的字体。我不知道有任何言论自由(GPL 许可)或啤酒免费(免费)软件可以大概执行此操作(先取消嵌入字体,然后重新嵌入替代字体)。我只知道两种商业产品可以做到这一点:callassoftware.com 的pdfToolbox4和 Enfocus'进站(当然,肯定还有其他公司,但我不知道,这两家是这里的市场领导者)。

以下是使用免费软件从 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"
    
  5. 请仔细记下命令可能发出的任何警告或错误消息。
  6. 成功提取的字体现在将使用与 PDF 中相同的名称存储在当前目录中。

(意识到提取这里的字体并不意味着移除PDF 中的字体,而是创建嵌入到 PDF 中的字体副本的字体文件。)


这是另一个构建块可能贡献力量以实现您的目标。您可能希望解压缩 PDF 的所有压缩部分/流,以便更轻松地使用简单的文本编辑器编辑文件。(警告:编辑 PDF 不是一项简单、直接的任务 --- 您的编辑工作将需要相当丰富的知识和对 PDF 文件格式内部结构的了解。)

toolbin此技巧还使用了 Ghostscript 的Subversion 子目录中的实用程序。

  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
    

此命令将尝试解压缩所有‘扁平’-压缩流。(如果你运气不好,你的文件还会包含使用其他压缩方法的流(例如'压缩'),该命令将保持不变。

相关内容