有两个pdf,首先用libharu创建,第二个用PDF :: API2创建。如果没有提到坐标,那么内容是相同的。但首先是pdf超过四倍。我发现的只有一个区别是文档属性字体选项卡中显示的字体嵌入类型。
首先
Verdana (Embedded Subset)
Type: TrueType
Encoding: Custom
第二次
Verdana
Type: TrueType
Encoding: Custom
Actual Font: Verdana
Actual font Type: TrueType
如何处理嵌入式子集?
答案 0 :(得分:1)
有许多因素会影响PDF的大小。您的问题可能与PDF创建库处理字体嵌入的方式相同,具体而言:
如果 PDF已经很小(只有一页,很少的文字和没有图像),嵌入字体可能会对文档的大小产生较大的影响。不过,从绝对意义上讲,嵌入式字体不应占用太多空间。
您应该检查的另一个因素是压缩。 PDF主要是纯文本流,但通常以压缩形式出现。尝试在纯文本编辑器中打开两个PDF,看看它是否可读或乱码。乱码(压缩)形式自然会占用更少的空间。
最后,您可以使用许多PDF检查器检查PDF文件所组成的对象,例如this one(我只是用Google搜索,不保证它会按预期工作)。
答案 1 :(得分:1)
这是一个老问题,但我有类似的问题。
您是否设置了libharu以压缩您的pdf?
在C ++中,来自documentation
HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);