如何合并 PDF 文件而不重复字体?

如何合并 PDF 文件而不重复字体?

我需要将大约 100 个 PDF 文件合并为一个,每个文件使用的内容大致相同未子集字体。到目前为止,我尝试过的所有选项(pdfunitegs等)在字体复制方面都不是智能的,合并后的 PDF 最终会得到 100 份相同字体的副本,因此比需要的要大得多。

有没有办法做以下任何一件事:

  1. 合并 PDF 而不重复字体?
  2. 稍后对 PDF 中的字体进行重复删除?
  3. 从 PDF 中完全删除字体?

理想的解决方案将具有商业友好的开源许可证(例如非 APGL)。

答案1

与您所说的相反,Ghostscript 的最新版本在将多个 PDF 合并为一个 PDF 时变得非常高效,同时避免多次嵌入相同的字体。

输入

以下是 3 个输入 PDF 的详细信息,我将它们合并为一个输出:

对于 {1..3} 中的 i;执行 pdffonts ${i}.pdf;回显;完成

 名称类型编码 emb sub uni 对象 ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica Type 1C WinAnsi 是 否 否 8 0

 名称类型编码 emb sub uni 对象 ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica Type 1C WinAnsi 是 否 否 8 0

 名称类型编码 emb sub uni 对象 ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica Type 1C WinAnsi 是 否 否 8 0

合并

现在借助 合并这三个 PDF 输入文件pdftk

pdftk 1.pdf 2.pdf 3.pdf cat 输出合并.pdf

输出

现在检查输出的字体状态合并.pdf

pdffonts 合并.pdf

 名称类型编码 emb sub uni 对象 ID
 -------------------------- ----------------- ---------------- --- --- --- ---------
 Helvetica Type 1C WinAnsi 是 否 否 5 0
 Helvetica Type 1C WinAnsi 是 否 否 14 0
 Helvetica Type 1C WinAnsi 是 否 否 23 0

好的,还没有到...

使用 Ghostscript 进行优化

gs -o optim.pdf -sDEVICE=pdfwrite merged.pdf

 GPL Ghostscript GIT 预发布版 9.27(2018-11-20)
 版权所有 (C) 2018 Artifex Software, Inc. 保留所有权利。
 该软件不附带任何担保:请参阅 PUBLIC 文件了解详细信息。
 正在处理第 1 页至第 3 页。
 第 1 页
 第2页
 第 3 页

检查字体状态和文件大小

ls -lh {1..3}.pdf 合并.pdf 优化.pdf

 -rw-r--r-- 1 kurtpfeifle 员工 51K 12 月 31 日 20:25 1.pdf
 -rw-r--r-- 1 kurtpfeifle 员工 51K 12 月 31 日 20:25 2.pdf
 -rw-r--r-- 1 kurtpfeifle 员工 51K 12 月 31 日 20:25 3.pdf
 -rw-r--r-- 1 kurtpfeifle 员工 147K 12 月 31 日 20:32 合并.pdf
 -rw-r--r-- 1 kurtpfeifle 员工 7.5K 12 月 31 日 20:34 optim.pdf

结论

我使用 Ghostscript v9.25 对此进行了测试。

如果这对您不起作用,您需要...

  1. ...告诉我们您正在使用的 Ghostscript 版本;
  2. ...提供(部分)输入 PDF 的链接,以便进行更详细的分析。

我知道这个答案不能为您提供完全满足您的许可要求的解决方案。 - 但是您关于 Ghostscript 的错误陈述促使我无论如何都给出这个答案,因此其他对这个主题感兴趣的人仍然可以从中受益......

相关内容