проверить, содержит ли файл EPS / PDF векторную графику

354
clarkk

Мне нужно конвертировать 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 на выходе - но только если вектор присутствует в файле .. Если он содержит только текст и изображения, я не хочу использовать ресурсы для запуска его через процесс OCR

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

0
У меня есть идея, но мне нужно ее проверить. У вас есть образец документа, который содержит страницы, которые содержат различные варианты ? hackerb9 6 лет назад 0
Кстати, вы можете изменить название с EPS на PDF, так как это то, что вы на самом деле хотите. (И решение может быть проще из PDF, так как есть больше инструментов). hackerb9 6 лет назад 0
@ hackerb9, извините, не видел ваши комментарии .. добавил ссылку на образец PDF-файла :) clarkk 6 лет назад 0

1 ответ на вопрос

0
hackerb9

Вы можете использовать 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. 

Похожие вопросы