verificar se o arquivo EPS / PDF contém o gráfico vetorial

0

Eu preciso converter arquivos PDF para EPS .. Então eu preciso tirar todo o texto e imagens .. Até agora isso funciona

pdftocairo -f 1 -l 1 -eps test.pdf - | sed '/BT/,/ET/ d' | sed '/^8 dict dup begin$/,/^Q$/ c Q' > no_text_and_images.eps

Mas como verificar se o arquivo EPS ainda contém vetor? Eu preciso fazer algum OCR na saída - mas apenas se o vetor estiver presente no arquivo. Se ele só contiver texto e imagens, não quero usar recursos para executá-lo através de um processo de OCR

Exemplo de arquivo: link

    
por clarkk 15.03.2018 / 10:22

1 resposta

0

Você pode usar o ImageMagick. A opção "-trim" corta uma imagem o menor possível e informa se sua imagem está completamente vazia:

$ convert -trim no_text_images.eps foo.jpg
convert-im6.q16: geometry does not contain image [...]

Como o comando convert não retorna um código de erro para esse aviso, seu script de shell precisará usar o stderr.

if ! convert -trim no_text_images.eps foo.png 2>&1 |
     grep 'does not contain image'; then
    [ there's an image, so process it ]
else
    [ there's no image ]
fi

No entanto, agora que vejo em que você está trabalhando, posso ter uma solução mais simples para você. Por que não tentar usar ocrmypdf ? Apenas sudo apt install ocrmypdf para instalá-lo na sua caixa Debian.

Eu o executei no PDF que você me deu e, mesmo tendo o tesseract definido para o inglês, ele obteve uma renderização razoável do vetor que você tem na parte superior do formulário:

$ ocrmypdf  --force-ocr  --oversample 150  084.pdf  foo.pdf
$ pdftotext foo.pdf -  |  less
Sigurd
Otto M¢nsteds

Va]

Muller Vinhandel

A/S

Aalbors SV- Tlf. 98 18 50 99- E-mail: [email protected] www. smv. dk
53 92 79 12- Nordjyske Bank 7450- 2038354

2- 9200

CVR

nr.

Import, salg as distribution if Vin cg spiritus
Eneiurhandler i Danmark af

udsIgte vine fra hale verden.
    
por 21.03.2018 / 08:48