Перейти к содержимому

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

0

Мне нужно конвертировать 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

489 просмотров
clarkk спросил 8 лет назад
C 94

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. 
hackerb9 ответил 8 лет назад
H 421