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

时间:2013-12-19 19:25:50

标签: c# pdf optimization itextsharp

我需要将多个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之间整合字体?

2 个答案:

答案 0 :(得分:0)

我的回答包括两部分:

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

答案 1 :(得分:0)

您可以重命名子集。

好像你有

Helvetica(子集)

Helvetica(子集)

你会创建

Helvetica-1(子集)

Helvetiva-2(子集)

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