从 pdf 文件中删除 OCRed 文本时避免文件大小膨胀?

从 pdf 文件中删除 OCRed 文本时避免文件大小膨胀?

我用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用作临时目录并避免空间问题。 (这可能对生成的文件大小没有影响)。

相关内容