Извлечь изображения из 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 : вывести информацию о использовании
-? : вывести информацию о использовании