Извлекайте изображения из PDF-файлов с помощью poppler

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

Содержимое страницы

Иногда действительно возникает необходимость сохранить изображения из PDF без использования скриншотов или отображения PDF на экране. pdfimages поможет в этом. Эта статья является частью нашего Руководства по инструментам документации 2026: Markdown, LaTeX, PDF и рабочие процессы печати хаба.

Комикс изображает человека, который делает фото схемы на экране

Чтобы извлечь изображения из файла PDF в Linux, наиболее распространённым и эффективным инструментом является утилита командной строки pdfimages, которая является частью пакета poppler-utils.

Использование утилиты pdfimages в Linux: Пошаговые инструкции

1. Установите pdfimages (если он ещё не установлен):

Большинство дистрибутивов Linux включают pdfimages по умолчанию. Если его нет, установите его с помощью менеджера пакетов:

sudo apt-get install poppler-utils

или для Fedora:

sudo dnf install poppler-utils

2. Откройте терминал:

Нажмите Ctrl + Alt + T, чтобы открыть окно терминала.

3. Запустите pdfimages для извлечения изображений:

Базовый синтаксис:

pdfimages  

Пример:

pdfimages /path/to/file.pdf /path/to/output/image
  • Это извлечёт все изображения из file.pdf и сохранит их как image-000.ppm, image-001.ppm и т.д. в указанной директории вывода.

4. Извлечение изображений в формате JPEG (если это необходимо):

Чтобы извлечь изображения в формате JPEG (если это возможно), используйте опцию -j:

pdfimages -j /path/to/file.pdf /path/to/output/image
  • Это сохранит изображения в формате .jpg.

5. Извлечение изображений с определённых страниц:

  • Чтобы извлечь изображения с диапазона страниц, используйте -f (первая страница) и -l (последняя страница):
pdfimages -f 2 -l 5 -j /path/to/file.pdf /path/to/output/image
  • Это извлечёт изображения со страниц 2 до 5.

6. Дополнительные опции:

  • Чтобы извлечь изображения в формате PNG: используйте -png (если это поддерживается вашей версией).
  • Для защищённых паролем PDF используйте -opw 'ownerpassword' или -upw 'userpassword'.

Примечания

  • Формат по умолчанию — PPM (цвет) или PBM (чёрно-белый). Используйте -j для JPEG, или преобразуйте файлы PPM/PBM в другие форматы с помощью инструментов, таких как convert из ImageMagick, если это необходимо.
  • Файлы вывода автоматически нумеруются и сохраняются в указанной директории.

Таблица краткого обзора

Пример команды Описание
pdfimages input.pdf image Извлекает все изображения в формате PPM/PBM по умолчанию
pdfimages -j input.pdf image Извлекает изображения в формате JPEG, когда это возможно
pdfimages -f 3 -l 5 input.pdf image Извлекает изображения со страниц 3 до 5
pdfimages -opw 'password' -j input.pdf image Извлекает изображения из PDF, защищённого паролем владельца

Этот метод эффективен и работает для большинства PDF, содержащих встроенные изображения. Но:

  • pdfimages извлекает изображения только в их оригинальном разрешении.
  • Чтобы контролировать разрешение вывода, используйте библиотеку для рендеринга PDF, например, PyMuPDF и укажите желаемое DPI при создании изображения.

Как сохранить изображения из PDF с определённым разрешением.

Вы не можете указать разрешение извлечённых изображений при использовании pdfimages, потому что этот инструмент извлекает встроенные изображения в их оригинальном формате и разрешении без пересэмплирования или изменения качества. Разрешение определяется тем, как изображения были сохранены в PDF, и pdfimages не предоставляет опции для масштабирования вверх или вниз во время извлечения.

Если вы хотите извлечь изображения с определённым разрешением (например, отобразить страницу или часть страницы как изображение с заданным DPI), вам нужно использовать библиотеку или инструмент для рендеринга PDF, например, PyMuPDF (fitz). С помощью PyMuPDF вы можете указать желаемое разрешение с помощью параметра dpi при рендеринге страницы в изображение:

import fitz  # PyMuPDF
doc = fitz.open("input.pdf")
page = doc.load_page(0)  # первая страница
pix = page.get_pixmap(dpi=300)  # рендеринг с разрешением 300 DPI
pix.save("output.png")

Этот подход создаёт растровое изображение страницы с указанным DPI, а не извлекает оригинальные встроенные изображения.

Другие инструменты для извлечения изображений из PDF

Лучшее программное обеспечение для извлечения изображений из PDF без потери разрешения — это те, которые извлекают оригинальные встроенные изображения напрямую, а не рендерят или пересэмплируют их. Лучшие варианты включают:

  • Adobe Acrobat Pro: Предоставляет специальную функцию “Экспортировать все изображения”, которая извлекает изображения в их оригинальном качестве и формате как отдельные файлы. Этот метод очень надёжен и сохраняет точное разрешение и качество изображений, как они хранятся в PDF.

  • pdfimages (из XPDF/Poppler suite): Бесплатный, открытый исходный код, утилита командной строки, доступная для Linux и других платформ. pdfimages извлекает все изображения из PDF в их оригинальном формате и разрешении, включая поддержку JPEG, JPEG2000 и других форматов. Он широко рекомендуется для пользователей, ищущих безвозмездный, высококачественный процесс извлечения.

  • Онлайн-инструменты (например, PDF24 Tools, PDFCandy, pdfforge): Эти сервисы позволяют загрузить PDF и загрузить извлечённые изображения, сохраняя оригинальное разрешение. Они удобны для быстрых задач и не требуют установки, но могут вызывать проблемы с приватностью для чувствительных документов.

Таблица краткого обзора

Программное обеспечение/Инструмент Платформа Сохраняет оригинальное разрешение Примечания
Adobe Acrobat Pro Windows/Mac Да Платное, профессиональное, очень надёжное
pdfimages (Poppler) Linux/Windows Да Бесплатное, открытый исходный код, утилита командной строки
PDF24 Tools, PDFCandy Веб-базированный Да Бесплатное, удобное в использовании, вопросы приватности

Ключевая точка:
Всегда используйте инструменты, которые извлекают (а не рендерят или делают скриншоты) изображения. И Adobe Acrobat Pro, и pdfimages являются отраслевыми стандартами для этой цели, обеспечивая сохранение изображений точно такими, как они есть в PDF, без потери разрешения.

Опции командной строки pdfutils

При выполнении pdfimages /help он выведет что-то подобное:

$ pdfimages /help
pdfimages version 24.02.0
Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : первая страница для конвертации
  -l <int>       : последняя страница для конвертации
  -png           : изменить формат вывода по умолчанию на PNG
  -tiff          : изменить формат вывода по умолчанию на TIFF
  -j             : записывать JPEG изображения как файлы JPEG
  -jp2           : записывать JPEG2000 изображения как файлы JP2
  -jbig2         : записывать JBIG2 изображения как файлы JBIG2
  -ccitt         : записывать CCITT изображения как файлы CCITT
  -all           : эквивалентно -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : вывести список изображений вместо сохранения
  -opw <string>  : пароль владельца (для зашифрованных файлов)
  -upw <string>  : пользовательский пароль (для зашифрованных файлов)
  -p             : включить номера страниц в имена выходных файлов
  -q             : не выводить никакие сообщения или ошибки
  -v             : вывести информацию об авторских правах и версии
  -h             : вывести информацию о использовании
  -help          : вывести информацию о использовании
  --help         : вывести информацию о использовании
  -?             : вывести информацию о использовании

Полезные ссылки