Извлечение встроенных изображений из PDF


165

До того, как я начал использовать Ubuntu, я использовал Nitro PDF Reader для автоматического извлечения изображений из PDF-файлов. Есть ли читатель PDF для Linux, который делает это?

Я хотел бы иметь возможность извлекать изображения быстрее / проще, чем при создании снимка.


Вы можете вспомнить, насколько хорошо NitroPDF может справляться с векторными изображениями? Может pdfimagesли это сделать лучше / хуже, чем NitroPDF?
Лео Леопольд Герц 준영


2
@ funky-future Очевидно, что эти два вопроса являются дубликатами, но у вашей цели-дубликата есть только два ответа, и один из этих двух ответов является спам-ответом, поэтому направление дублирования следует изменить на противоположное, чтобы этот вопрос не был забит двойным молотом.
Карел

Ответы:


197

использование pdfimages

pdfimages инструмент для извлечения изображений в формате PDF, который сохраняет изображения в файле PDF в формат (ы) PPM, PBM, JPEG или JPEG 2000.

Это часть poppler-utilsпакета, которую вам нужно установить.

Использование: pdfimages [options] <PDF-file> <image-root>

Пример: следующее извлекает все изображения из файла PDF, сохраняя их в формате JPEG.

pdfimages -j in.pdf /tmp/out

Сохранит изображения из файла PDF in.pdfв файлы /tmp/out-000.jpg(или /tmp/out-000.pbm; см. Ниже) /tmp/out-001.jpgи т. Д.


Справочная страница pdfimages объясняет:

-j:  Normally, all images are written as PBM (for monochrome images) or PPM for
     non-monochrome images) files. With this option,  images in DCT format are
     saved as JPEG files. All non-DCT images are saved in PBM/PPM format as usual.

8
Было бы неплохо иметь решение, которое извлекает изображения в своем родном формате. Перекодирование JPEG не совсем идеально.
Кристиан

32
@ Кристиан со страницы -all Write JPEG, JPEG2000, JBIG2, and CCITT images in their native format. CMYK files are written as TIFF files. All other images are written as PNG files. This is equivalent to specifying the options -png -tiff -j -jp2 -jbig2 -ccitt.
руководства

2
Обратите внимание, что этот параметр -allподдерживается только в последних версиях poppler-utils. Например, если вы все еще на 12.04, вы не сможете получить доступ к этой опции
Glutanimate

1
Если вы не можете использовать -allперейти к форматам PNM. Они без потерь, и вы можете постобработать изображения, например, в PNG.
Томаш Гандор

1
@Christian, используйте $ pdfimages -list <PDF-file>для проверки исходного формата в столбце «enc», чтобы вам не приходилось перекодировать изображение в другой формат.
Хосе Баракат

24

Я часто использую Inkscape для этого. Загрузите страницу и удалите все остальное. Преимущество в том, что вы можете получать векторные изображения в SVG и изменять их по своему усмотрению.


Некоторые PDF-файлы могут быть правильно импортированы только с помощью внутреннего импорта Inkscape (импорт poppler / cairo или pdfimage не может его правильно проанализировать). После импорта скопируйте и вставьте изображение в новый файл и измените размер страницы для выбора graphicdesign.stackexchange.com/a/21638/95041
sdaffa23fdsf

Нет проблем для меня, это было лучшее решение, обратите внимание, что вы должны выбрать одну страницу за раз!
Джимми Олано

5

У меня есть двухколонный PDF-файл со встроенными изображениями, созданными с помощью LaTeX, где исходные изображения были представлены в формате EPS. Я попробовал предлагаемое решение на основе pdfimages, но, к сожалению, оно не вернуло никаких изображений. Тогда я попытался использовать Inkscape, но генерируемые им SVG-изображения были искажены, и мне тоже не повезло, экспортируя их как EPS.

Программное обеспечение, которое работало для нас, было MasterPdfEditor .

Вот процедура

  • Откройте ваш файл с помощью Master PDF Editor
  • Используйте инструмент редактирования (Alt + 1), чтобы выбрать изображение, которое нужно извлечь
  • Скопируйте рисунок (Ctrl + C)
  • Нажмите на окружающую пунктирную рамку вокруг изображения и проверьте правую боковую панель (инспектор объектов) и нажмите «Geomerty». Там вы можете увидеть размер вашего выбора
  • Создайте новый файл (Ctrl + N). Вам будет предложено указать размер страницы. Укажите точный размер вашего изображения и создайте новый файл.
  • Теперь это немного сложно: вставьте изображение (Ctrl + V). Изображение может не отображаться в новом файле. Используйте стрелки, чтобы переместить его, пока вы не сможете отследить его.
  • Используйте стрелки для центрирования изображения на новой странице
  • Сохранить как PDF

Результат очень высокого качества, но программное обеспечение не является бесплатным. Существует демо-версия, которая «позволяет вам попробовать все функции», но поставляется с «добавлением водяного знака в выходной файл». Честно говоря, я не заметил водяных знаков в произведенном PDF.


Это Ask Ubuntu ... Нам нравится открытый исходный код, а ваше решение - коммерческое решение с закрытым исходным кодом ... Как это лучше, чем уже проголосовавшие ответы? (-1 в это время)
Fabby

3
@Fabby Спасибо за отзыв. Я не знал об этом. Есть ли такое правило на askubuntu.com? Однако, как только вы открываете центр программного обеспечения Ubuntu , вы получаете предложения для несвободных приложений.
Пантелис Сопасакис

Нет, никакого «правила» нет, и поэтому я не проголосовал за удаление этого ответа, но есть лучшие бесплатные инструменты (например, в свободном пиве и свободе слова), так что это просто мнение.
Fabby

1
+1. Я использовал командную строку ImageMagick, но это интересное решение для тех, кто ищет графический интерфейс.
rpmcruz

2
Это работает для некоторых людей, это достаточно хорошо. Не будь нацистом ... Я не знаю, кто такие "мы". Вы можете говорить только за себя. +1 за ответ
sdaffa23fdsf

4

Вы также можете попробовать pdfmod. Это графический интерфейс (GUI), который может извлекать изображения и выполнять другие основные операции с PDF.


Хм, кажется мне немного глючит. Вставил PDF с преимущественно фиолетовыми изображениями и получил зеленоватые изображения.
DBX12

2

Если вам нужно обрезанное изображение в формате pdf / eps, извлеките страницу с изображением, используя pdfmod(как предложено To Do).

Затем, используя его, pdfcropвы можете обрезать его, правильно установив поля методом проб и ошибок:

pdfcrop --margins "-15 -50 0 -140" extracted_page.pdf

1

Я использую pdfimages, который является инструментом командной строки, и он прекрасно работает для меня. Он очень прост в использовании, и вы можете использовать опцию --help, чтобы узнать больше о его использовании. Я использую Ubuntu, и он поставляется предварительно установленным. Если ваши PDF-файлы зашифрованы или защищены паролем, есть варианты для этого, поэтому этот инструмент отлично работает. Вы можете прочитать больше о pdfimages здесь


4
Пожалуйста, прочитайте другие ответы, прежде чем публиковать свои. Обратите внимание, что есть другие, которые покрывают это.
Эдвин

Хорошо, извините :) Я решил опубликовать мой, потому что он содержит некоторую информацию о защищенных паролем pdf-файлах, и я объясняю, что у этого инструмента есть эти опции, плюс я разместил ссылку, которая является руководством по этому инструменту.
jetbird13

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

1

С pdfimages извлеченное изображение может состоять из двух или более частей. Простой способ соединить их снова, не беспокоясь о извлеченных форматах, - это импортировать детали в LibreOffice Draw, обрезать с помощью диалогового окна обрезки изображения, расположить детали, отрегулировать размер страницы и экспортировать в любой формат, который вы предпочитаете.


1

Если вы хотите обрезать изображение из pdf с помощью pdfviewer, вы можете попробовать okular. Он может обрезать все (тексты или изображения) в формате PNG или JPEG. Если вы хотите извлечь изображения в формате png из pdf, вы можете сделать это с помощью минимальной команды с pdftohtml. Он конвертирует PDF в HTML плюс изображения. Здесь вы можете найти пример - https://www.youtube.com/watch?v=CG1rf7k3xo8 . Если вы хотите извлечь много изображений из PDF, я предлагаю вам попробовать это.


0

Используемое программное обеспечение: Xreader OS: Antergos

шаги:

  1. Открыть PDF
  2. Щелкните правой кнопкой мыши на изображении
  3. Выберите Сохранить изображение как ..
  4. Введите имя файла и расширение.
  5. Сохранить.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.