我用pdfimages
并由convert
安东推荐删除 ORed 文本一个pdf文件,并且pdf文件的大小从29MB变为373MB。
我的第一步是将 pdf 文件拆分为每个 pdf 页面的 pbm 文件:
mkdir tmp1
pdfimages ull.pdf tmp1/ull
生成的pbm文件总大小为788M。
在下一步中,我将生成的 pbm 文件转换并合并为 pdf 文件
cd tmp1
convert ull*.pbm all.pdf
然而,这会出错,因为它需要 1 GB 以上的空间/tmp
,而我的/tmp
没有那么多可用空间。所以我的第二步实际上是:
mkdir tmp2
for i in ull-*.pbm; do convert $i tmp2/$i.pdf ; done
cd tmp2
pdftk ull-???.pbm.pdf ull-????.pbm.pdf cat output ../../all.pdf
生成的pdf文件all.pdf
有373MB,比原始大小29MB大得多。我运行了pdftk all.pdf output new.pdf compress
,但它并没有减少文件大小。
由于我想要的只是从pdf文件中删除OCRed文本,如何避免文件大小膨胀?
答案1
如果原始图像是 JPEG 文件,则可以使用pdfimages
选项-j
。从man pdfimages
:
-j Normally, all images are written as PBM (for monochrome images)
or PPM (for non-monochrome images) files. With this option,
images in DCT format are saved as JPEG files. All non-DCT
images are saved in PBM/PPM format as usual.
我不确定如何控制 Convert 将图像存储在 PDF 文件中的方式,但您可以使用-quality
和-resize
来更改压缩质量。
convert
通过以下方式之一调用
TMPDIR=/home/tim/tmp convert ...
MAGICK_TMPDIR=/home/tim/tmp convert ...
您可以将转换/home/tim/tmp
用作临时目录并避免空间问题。 (这可能对生成的文件大小没有影响)。