Мне нужно конвертировать PDF файлы в EPS .. Тогда мне нужно удалить весь текст и изображения .. Пока это работает

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

Но как проверить, содержит ли EPS-файл вектор? Мне нужно сделать OCR на выходе - но только если вектор присутствует в файле .. Если он содержит только текст и изображения, я не хочу использовать ресурсы для запуска через процесс распознавания.

Пример файла: http://docdro.id/yJZTGBt

1 ответ1

0

Вы можете использовать ImageMagick. Опция '-trim' обрезает изображение настолько маленьким, насколько это возможно, и сообщит вам, является ли ваше изображение полностью пустым:

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

Поскольку команда convert не возвращает код ошибки для этого предупреждения, ваш сценарий оболочки должен будет выполнить grep 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

Однако теперь, когда я вижу, над чем вы работаете, у меня может быть более простое решение для вас. Почему бы не попробовать использовать ocrmypdf? Просто sudo apt install ocrmypdf чтобы установить его на свой компьютер Debian.

Я запустил его в PDF-файле, который вы мне дали, и, хотя мой tesseract установлен на английский, он получил разумный рендеринг вектора, который у вас есть вверху формы:

$ 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: vin@smv.dk- 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .