【问题标题】:Why so big difference in sizes of almost identical documents为什么几乎相同的文件大小差异如此之大
【发布时间】:2012-01-20 23:44:01
【问题描述】:

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

首先

Verdana (Embedded Subset) 
  Type: TrueType 
  Encoding: Custom

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

如何处理嵌入的子集?

【问题讨论】:

    标签: pdf fonts pdf-generation embedded-fonts libharu


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 你不知道任何适用于 linux 的 pdf 检查器吗?我用谷歌搜索了很多,但看起来只有 Mac 和 Windows 存在。
    • 嵌入子集是指仅包含文档中使用的字形的字体。字体指标应始终在文件中。
    • @Jimmy,在重新阅读参考资料后,你是对的。 (有 14 种标准字体不必嵌入,但 Verdana 不是其中之一。)
    【解决方案2】:

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

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

    在 C++ 中,来自 documentation

    HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);
    

    【讨论】:

    • 太长了,我不记得了,但是 + 1))
    猜你喜欢
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    相关资源
    最近更新 更多