Как извлечь изображение из файла PDF

49

В настоящее время я использую программу чтения PDF от Foxit, и недавно я загрузил изображение из Интернета, но оно находится внутри файла PDF. Как мне извлечь это изображение?

Операционная система Windows 7.

StudioHack
источник
Ваше самое высокое качество извлечения будет состоять в том, чтобы извлечь в любой формат, в котором изображение уже сохранено в PDF. (по крайней мере, я думаю, что именно так работают изображения в формате PDF.)
Quack Quixote

Ответы:

4

Быстрый способ, если вам не требуется оригинальное разрешение изображения в пикселях, - это просто нажать кнопки ALT и Print Screen. Затем выберите пасту, где вы хотите изображение.

Другой способ сохранить разрешение - открыть PDF-файл в программе для редактирования изображений, например Adobe Photoshop, и работать с ним там.

UserSuUserDo
источник
1
Открытие документа PDF в Photoshop приводит к появлению диалогового окна «Растеризация общего формата PDF», поэтому разрешение не может быть сохранено. Протестировано с PS7. Отличаются ли новые версии Photoshop?
AffineMesh,
1
как вы сказали, [alt] + [prnscr] не сохраняет исходное разрешение в пикселях (оно использует любое разрешение, используемое вашим текущим экраном / монитором).
Курт Пфайфл
1
@studiohack, @UserSuUserDo: Мало того, что вы пропустите оригинальное разрешение, если вы используете [alt] + [prnscr], но вы получите полное окно просмотра PDF как изображение. Это может быть «достаточно хорошо» для многих случаев использования. Но иногда вам нужна графика, встроенная только в PDF-страницу. Здесь pdfimages.exeпригодится.
Курт Пфайфл
1
Или используйте встроенный в W7 инструмент для захвата, чтобы захватить нужную область.
Моав
71

Если вы загрузите XPDF для Windows ( здесь ), вы найдете несколько файлов .exe внутри. Вы можете запустить их без «установки». Используйте pdfimages.exeкак это:

pdfimages.exe -help

Появится экран справки.

pdfimages.exe ^
    -j ^
    c:\path\to\your.pdf ^
    c:\path\to\where\you\want\images\prefix\

Это извлекает все JPEG как prefix-00N.jpg, а все остальные изображения как prefix-00N.ppm (Portable PixMap).

[ Редактировать ComFreek: Обратите внимание на косую черту в пути назначения, что важно, если вы не хотите извлекать все изображения в родительский каталог.] -
{ Редактировать от KurtPfeifle: Я не согласен с комментарием ComFreek, но оставляю это для читателей, чтобы проверить и выяснить различия в результатах сами. Мой исходный параметр, не использующий косую черту, так как ..\prefixпрефикс имен файлов, используемых для извлеченных файлов.}

pdfimages.exe ^
    -j ^
    -f 11 ^
    -l 13 ^
    c:\path\to\your.pdf ^
    c:\path\to\where\you\want\images\prefix\

То же, что и раньше, но ограничивает извлечение изображения страницами 11 («f» = первый) до 13 («l» = последний).


Обновить:

В то же время я предпочитаю версию Попплераpdfimages - особенно с учетом того, что он приобрел эту новую функцию: добавить -listв командную строку, чтобы просто перечислить (а не извлечь) изображения, содержащиеся в PDF, плюс некоторые их свойства. Пример:

pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf

  номер страницы ширина ширина высота цвет комп.
  -------------------------------------------------- -------------------
     7 0 изображение 581 838 RGB 3 8 JPEG № 39 0
     7 1 изображение 4 4 RGB 3 8 изображение № 40 0
     7 2 image 314 332 rgb 3 8 jpx no 44 0
     7 3 image 358 430 rgb 3 8 jpx no 45 0
     7 4 изображение 4 4 rgb 3 8 изображение № 46 0
     7 5 изображение 4 4 rgb 3 8 изображение № 47 0
     7 6 изображение 4 6 RGB 3 8 изображение № 48 0
     7 7 image 596 462 rgb 3 8 jpx no 49 0
     7 8 изображение 4 6 RGB 3 8 изображение № 50 0
     7 9 изображение 4 4 RGB 3 8 изображение № 51 0
     7 10 изображение 8 10 RGB 3 8 изображение № 41 0
     7 11 изображение 6 6 RGB 3 8 изображение № 42 0
     7 12 image 113 27 rgb 3 8 jpx no 43 0
     8 13 изображение 582 839 серый 1 8 JPEG № 2080 0
     8 14 изображение 344 364 серый 1 8 jpx нет 2079 0

Обратите внимание еще раз: эта версия pdfimagesявляется одной из Poppler (один из Xpdf никак не (пока) поддерживают эту новую функцию?), А версия должна быть v0.20.2 или выше.

Курт Пфайфл
источник
1
@harlev: Google для ImageMagick . Он имеет инструмент командной строки, который может конвертировать все, что называется convert. Доступно для Linux, Windows, MacOS X и что там у вас. Самый простой случай использования для вас: convert some.ppm some.jpeg.
Курт Пфайфл
3
Примечание: XPDF не так активно поддерживается, как библиотека poppler, которая разветвлена ​​из нее некоторое время назад. Попплер также предоставляет pdfimages, и некоторые люди могут предпочесть использовать это.
MvG
1
@BurhanKhalid: Предварительно собранные двоичные файлы находятся здесь: sourceforge.net/projects/poppler-win32
Курт Пфайфл
2
@KurtPfeifle К сожалению, они вообще не содержат никаких исполняемых файлов.
Крис
3
Я знаю , что это старый , но просто хотел поделиться , если кто - то ищет окна двоичных файлов вы можете получить его здесь blog.alivate.com.au/poppler-windows
Айван Monceller
8

Вы можете попробовать импортировать PDF-файл в Inkscape и работать оттуда. Inkscape будет открывать только одну страницу за раз, но даст вам полный контроль над содержимым страницы. Вы сможете легко извлекать и управлять векторной графикой из PDF.

Однако, если вы хотите извлечь растровые изображения из PDF, я уверен, что pdfimagesс XPDF это проще (но вы все равно можете попробовать использовать Inkscape после того, как узнаете, как извлекать встроенные изображения из файлов SVG ).

Денилсон Са Майя
источник
GIMP ( gimp.org ) - еще один инструмент графического дизайна, который может импортировать PDF-файлы и манипулировать ими. Однако не уверен, как возможности GIMP отличаются от возможностей в Inkscape.
coderworks
@coderworks: GIMP будет растеризовать импортированную страницу PDF в заданное разрешение. Другими словами, это немного лучше, чем использовать «Print Screen». Inkscape, с другой стороны, сохранит исходные векторные данные, а также исходные растровые изображения.
Денилсон Са Майя
5

Без установки какого-либо программного обеспечения вы можете переключиться на PDF-XChange Viewer (выберите Portable Version ), в который эта возможность уже встроена

  • экспортирует все или выбранные страницы как изображение
  • Выходной формат: PNG, JPG, TIFF, BMP
  • выберите DPI, уровень сжатия, оттенки серого
  • можно сохранить несколько страниц в виде многостраничного TIFF

    введите описание изображения здесь

    введите описание изображения здесь
    нажмите, чтобы увеличить


Помните, что хотя этот метод преобразует целые страницы PDF в изображения, метод, описанный @Laurenz с использованием Sumatra PDF , лучше, если вы хотите извлечь изображения из страницы PDF со смешанным содержимым (изображение + текст), чтобы получить только изображение.

nixda
источник
2
@MarkSeemann Я не могу следовать. «Без установки какого-либо программного обеспечения» в этом контексте означает, что доступна портативная версия. Портативное программное обеспечение не может быть «установлено» по определению. Вы просто скачиваете, распаковываете и запускаете его.
nixda
3
Тот факт, что вам нужно «выбрать DPI», побеждает цель. Вы изменяете размеры растровых изображений (массив пикселей), и любое изменение размера растрового изображения приводит к потере качества и информации.
Энтони
конвертировать PPM файлы в PNG или JPEG?
Kiquenet
4

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

Лоренц
источник
3

MuPDF - это новый (созданный в 2006 году) мультиплатформенный (для ПК и для мобильных устройств) просмотрщик PDF, выпущенный по лицензии AGPL. Он поддерживается теми же людьми из Ghostscript .

Он содержит инструмент командной строки для извлечения изображений из PDF:

mutool extract [options] file.pdf [object numbers]

Команда извлечения может использоваться для извлечения изображений и файлов шрифтов из PDF. Если в командной строке не указаны номера объектов, будут извлечены все изображения и шрифты.

-p password
       Use the specified password if the file is encrypted.

-r     Convert images to RGB when extracting them.
Денилсон Са Майя
источник
2

использовать pdftocairoот poppler toolkit. Он может извлекать и конвертировать изображения в формате PDF в любой нужный формат. Он всегда генерирует изображения и никогда не генерирует ppm или подобные крэпсы. Следующая команда преобразует страницы PDF в изображения JPG:

pdftocairo.exe -jpeg "my.pdf" "my"

Вы можете получить его здесь для Windows: http://blog.alivate.com.au/poppler-windows/

Это доступно и в Linux.

MSS
источник
Эта команда НЕ ЭКСТРАКТИРУЕТ изображения, встроенные в PDF (как было задано ОП). Вместо этого он превращает полные страницы PDF в графические форматы. Этот ответ не соответствует заданному вопросу.
Курт Пфайфл
1

http://www.sumnotes.net/ - это онлайн-инструмент для извлечения заметок, основных моментов и изображений. Я широко использовал его в университете для своей диссертации, и я был действительно доволен.

Тимоти
источник
Коммерческий с ограниченной бесплатной пробной версией. Это также онлайн, что означает, что конфиденциальность не может быть гарантирована!
Энтони
-1

обычно я извлекаю внедренное изображение с помощью pdfimages в собственном разрешении, а затем использую преобразование ImageMagick в нужный формат:

$ pdfimages -list fileName.pdf
$ pdfimages fileName.pdf fileName   # save in .ppm format
$ convert fileName-000.ppm fileName-000.png

это генерирует лучший и самый маленький файл результатов.

Примечание. Для встроенных изображений с потерями в формате JPG необходимо использовать -j:

$ pdfimages -j fileName.pdf fileName   # save in .jpg format

На небольшой предоставляемой платформе Win вам пришлось загрузить недавний (0.37, 2015 г.) бинарный файл poppler-util с http://blog.alivate.com.au/poppler-windows/

ОБНОВЛЕНИЕ: В недавнем «poppler-util» 0.50+ (2016) pdfunite имеет опцию «-all» для извлечения сжатого растрового изображения без потерь в виде .png и сжатого растрового изображения с потерями в виде .jpg, поэтому просто:

$ pdfimages -all fileName.pdf fileName

извлекать всегда лучшее качественное содержание из PDF

Valerio
источник
Ранее был в ответе Курта Пфайли.
daniel.neumann