0

有两个 pdf,第一个用 libharu 创建,第二个用 PDF::API2 创建。如果不提及坐标,那么内容是相同的。但是第一个pdf超大第二个四倍。我发现只有一个区别是文档属性字体选项卡中显示的字体嵌入类型。

在第一

Verdana (Embedded Subset) 
  Type: TrueType 
  Encoding: Custom

在第二

Verdana 
  Type: TrueType
  Encoding: Custom
  Actual Font: Verdana
  Actual font Type: TrueType

如何处理嵌入的子集?

4

2 回答 2

1

这是一个老问题,但我有一个类似的问题。

您是否设置了 libharu 来压缩您的 pdf?

在 C++ 中,来自文档

HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);
于 2013-09-02T08:43:18.293 回答
1

影响 PDF 大小的因素有很多。您的问题可能在于 PDF 创建库处理字体嵌入的方式,特别是:

  • “嵌入子集”意味着字体的部分指标,如字形宽度,包含在文件中。
  • 如果字体没有嵌入,大概是阅读器从系统加载的,从而减小了文件的大小。

如果PDF 已经很小(只有一页,文本很少,没有图像),嵌入字体可能会对文档的大小产生比较大的影响。尽管如此,从绝对意义上来说,嵌入式字体不应该占用太多空间。

您应该检查的另一个因素是压缩。PDF 主要是纯文本流,但通常以压缩形式出现。尝试在纯文本编辑器中打开这两个 PDF,看看它是否可读或乱码。乱码(压缩)形式自然会占用更少的空间。

最后,您可以使用许多 PDF 检查器检查 PDF 文件组成的对象,例如这个(我只是用谷歌搜索了它,不能保证它会按预期工作)。

于 2011-12-15T10:41:13.547 回答