Извлечь изображения из PDF

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

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

Иногда возникает реальная необходимость сохранить изображение из PDF-файла без использования скриншотов или отображения PDF на экране.
pdfimages поможет в этом.

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

Для извлечения изображений из 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 /путь/к/файлу.pdf /путь/к/выходному/изображению  
  • Это извлечёт все изображения из файла.pdf и сохранит их как изображение-000.ppm, изображение-001.ppm и т.д. в указанной директории.

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

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

pdfimages -j /путь/к/файлу.pdf /путь/к/выходному/изображению  
  • Это сохранит изображения в формате .jpg.

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

  • Чтобы извлечь изображения с диапазона страниц, используйте -f (первая страница) и -l (последняя страница):
pdfimages -f 2 -l 5 -j /путь/к/файлу.pdf /путь/к/выходному/изображению  
  • Это извлечёт изображения со страниц 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)(https://www.glukhov.org/ru/post/2025/04/ubuntu-poppler/ “Инструменты для работы с PDF в Ubuntu - Poppler”): Бесплатный, открытый исходный код, командная утилита, доступная на 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         : вывести информацию о использовании  
  -?             : вывести информацию о использовании  

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