如果我有多页PDF,请使用出色的poppler package(使用brew install poppler
安装在macOS上)将其分成单独的页面,如下所示:
pdfseparate foo.pdf bar-%04d.pdf
,然后重新加入生成的bar-####。pdf文件,如下所示:
pdfunite bar-*.pdf baz.pdf
生成的baz.pdf似乎具有相同的内容,但是文件更大。
起初我假设是因为结果中或某些内容中会存在重复的元数据。但是,即使我使用exiftool和{{3}从所有文件(即从输入)以及中间的bar-####。pdf文件以及所得的输出文件中剥离所有元数据}:
# command line steps to strip metadata from (and re-linearize) example.pdf :
exiftool -all= -overwrite_original example.pdf ;
mv example.pdf temp.pdf ;
qpdf --linearize temp.pdf example.pdf
然后仍生成的baz.pdf文件比原始输入大得多。
这可能是什么原因?多页PDF文件中除了裸内容外还有什么?假设poppler的pdfseparate
和pdfunite
保持了实际内容本身不变,并且我对元数据的剥离是正确的。
或者pdfseparate
和pdfunite
是否有可能以无损但次优的方式分解和重建PDF内容? (我对PDF文件的内部结构不够了解,但是我可以想象有很多不同的方法可以对相同内容进行编码)
顺便说一句,如果我使用exiftool somefile.pdf
检查任何涉及的PDF文件,它实际上根本没有显示任何元数据(并且线性化:是)。
答案 0 :(得分:2)
PDF页面使用字体,图像等共享资源。拆分文档时,共享资源进入每个结果文件。合并这些文件时,资源可能不会被合并回去(这取决于合并工具的实现方式),从而导致文件大得多。