Evite inchaço do tamanho do arquivo ao remover o texto OCR de um arquivo pdf?

4

Eu uso pdfimages e convert recomendado pela Anthon para remover o texto oculto de um arquivo pdf , e o tamanho do arquivo pdf muda de 29MB para 373MB.

Meu primeiro passo é dividir o arquivo pdf em um arquivo pbm por página em pdf:

mkdir tmp1
pdfimages ull.pdf tmp1/ull

O tamanho total dos arquivos pbm gerados é de 788M.

Na minha próxima etapa, eu converto e combino os arquivos pbm gerados em um arquivo pdf

cd tmp1
convert ull*.pbm all.pdf

Isso está errado, no entanto, porque requer mais de 1 GB de espaço em /tmp e meu /tmp não tem muito espaço livre. Então, meu segundo passo é realmente:

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

O arquivo PDF gerado all.pdf tem 373MB, muito maior que o tamanho original de 29MB. Eu corro pdftk all.pdf output new.pdf compress , mas isso não reduz o tamanho do arquivo.

Como tudo que eu quero é remover o texto OCR do arquivo pdf, como posso evitar o inchaço do tamanho do arquivo?

    
por Tim 07.12.2014 / 17:55

1 resposta

3

Se a imagem original for JPEG, você poderá usar pdfimages option -j . De 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.

Não sei como controlar o modo como o convers armazena as imagens no arquivo PDF, mas você pode usar -quality e -resize para alterar a qualidade de compactação.

Chamando convert de uma das maneiras a seguir

TMPDIR=/home/tim/tmp  convert ...
MAGICK_TMPDIR=/home/tim/tmp convert ...

você pode converter o uso /home/tim/tmp como o diretório temporário e contornar os problemas de espaço. (Que provavelmente não tem influência no tamanho do arquivo resultante).

    
por 07.12.2014 / 18:44