在合并之间合并字体pdfs itextsharp C#

我需要将多个pdf合并在一起。 我正在使用itextsharp来创建所有的pdf。 我需要将pdf的大小减小到尽可能小的大小。 我知道每个pdf的字体都是重复的。 在合并的pdf中是否只使用一组字体? 例如,pdf1是2.8mb,pdf2是2.8mb我将它们合并在一起,大约5.7mb。 我知道这两个pdf都使用相同的字体,但字体的数据正在被删除,即使它在相同的pdf中。

我尝试使用压缩属性设置为最佳压缩并设置完全压缩,并且几乎不会减小尺寸。

虽然当我通过Acrobat X pro运行pdf并优化其减少近90%+从160 mb到5 mb。 使用情况审计表明,在优化之前,其90%的pdf是字体。

现在有没有办法合并pdfs合并之间的字体?

我的回答包括两部分:

  1. 您没有告诉我们您是如何合并PDF的。 我们希望您已经阅读了官方文档,并且您正在使用PdfSmartCopy 。 如果没有,你做错了。 PdfSmartCopy检查不同PDF的内容并重用可能的冗余对象(例如重用图像,XObject,字体)。 请注意,早期版本的PdfSmartCopy中存在一些错误,因此请确保您使用的是最新版本。
  2. 如果不同的PDF使用相同字体的不同子集,那么你运气不好。 iText不合并字体子集。 合并不同的字体子集将涉及重写内容流,如果我们正在讨论如果合并子集需要超过256个字符的简单字体集等,则会创建新字体…

您可以重命名子集。

好像你有

Helvetica(子集)

Helvetica(子集)

你会创造的

Helvetica-1(子集)

Helvetiva-2(子集)

一旦它们是不同的实现(二进制流比较)