Извлечение изображений из pdf-файла.

Posted by

Порой читая скаченные журналы/книги/статьи приходит мысль как бы скопировать иллюстрации себе. В нашей системе есть утилита которая нам в этом поможет:

ekzorchik@ekv:~$ apt-cache search

poppler-utils — utilitites (based on libpoppler)

xpdf-utils — Portable Document Format (PDF) suite – utilities

Установим:

ekzorchik@ekv:~$ sudo apt-get install xpdf-utils

ekzorchik@ekv:~$ whereis pdfimages

pdfimages: /usr/bin/pdfimages /usr/share/man/man1/pdfimages.1.gz

С помощью утилиты pdfimages можно посмотреть информацию о любом pdf-файле.

Посмотрим какие данные можно получить:

ekzorchik@ekv:~$ pdfinfo trex.pdf

Creator:        Adobe InDesign CS4 (6.0)

Producer:       Adobe PDF Library 9.0

CreationDate:   Mon Jul 19 14:45:50 2010

ModDate:        Mon Jul 19 14:47:09 2010

Tagged:         no

Pages:          36

Encrypted:      no

Page size:      595.276 x 841.89 pts (A4)

File size:      2685333 bytes

Optimized:      no

PDF version:    1.6

В данном выводе нам наиболее полезна строка Pages. Она понадобится для разбора страниц.

Применим утилиту на наш pdf-файл:

ekzorchik@ekv:~/PDF$ pdfimages -f 1 -l 36 -j trex.pdf tox

* -f — номер первой страницы pdf-файла, из которого будут извлекаться картинки;

* -l — аналогично — номер последней страницы pdf-файла (то есть, опциями f и l мы задаем диапазон в pdf-файле, откуда будем извлекать картинки; это в том случае, когда не хотим получить ВСЕ картинки из ВСЕГО pdf-файла);

* -j — конвертировать извлеченные картинки в формат jpg.

она вытянула все, что смогла. И что смогла — переконвертировала в формат jpg, как мы ей и сказали опцией -j. А что не смогла — оставила в формате ppm.

ekzorchik@ekv:~/PDF$ file tox-130.ppm

tox-130.ppm: Netpbm PPM «rawbits» image data

ekzorchik@ekv:~/PDF$ file tox-127.jpg

tox-127.jpg: JPEG image data

имя tox в конце команды. Это имя может быть любым другим, на ваш выбор, но оно должно быть! Это своеобразная маска, по которой программа pdfimages создает имена графических файлов. За примером далеко ходить не надо. Смотрим на результат работы малютки — и все сразу станет понятно:

По окончании работы программы удаляем, то что не обработалось:

ekzorchik@ekv:~/PDF$ rm *.ppm

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5 × 3 =