Как я могу извлечь изображения из PDF-файла?

Мне нужно извлечь все изображения из файла 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 ?

  • PDF :: GetImages – получение изображений из pdf-документа
  • PDF :: OCR – получить ocr и изображения из pdf-файла
  • PDF :: OCR2 – извлекает весь текст и все изображение ocr из pdf

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

С наилучшими пожеланиями,

+++ Оливер