Мне нужно извлечь все изображения из файла PDF на моем сервере. Мне не нужны страницы PDF, только изображения с их оригинальным размером и разрешением.
Как я могу сделать это с помощью Perl, PHP или любого другого приложения на основе UNIX (которое я бы вызывал с помощью функции exec из PHP)?
pdfimages делает именно это. Это часть пакетов poppler-utils и xpdf-utils.
С manpage:
Pdfimages сохраняет изображения из файла Portable Document Format (PDF) в виде переносимых изображений (PPM), переносного растрового изображения (PBM) или файлов JPEG.
Pdfimages читает файл PDF, просматривает одну или несколько страниц, PDF-файл и записывает один файл PPM, PBM или JPEG для каждого изображения, image-root-nnn.xxx, где nnn – номер изображения, а xxx – тип изображения (.ppm, .pbm, .jpg).
NB: pdfimages извлекает необработанные данные изображения из файла PDF без каких-либо дополнительных преобразований. Любое вращение, обрезка, инверсия цвета и т. Д., Выполняемые потоком содержимого PDF, игнорируются.
Что касается Perl, вы проверили CPAN ?
pdfimages хорошо, поскольку он не перекодирует, а извлекает только jpeg. Но есть ошибка:
pdfimages поставляется из пакета «poppler-utils» или из более крупных «xpdf-utils». По крайней мере, в Ubuntu «poppler-utils» уже установлен заранее. PDFimages в poppler-utils 10.0.3 (Ubuntu 9.04 Jaunty) по-прежнему не реагирует на вариант «-j», чтобы извлечь «.jpg». Он всегда извлекает «.ppm».
В качестве обходного решения вы можете заменить «poppler-utils» на «xpdf-utils»: $ sudo apt-get install xpdf-utils
С наилучшими пожеланиями,
+++ Оливер