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

У меня есть файл PDF, содержащий карты здания, в котором я работаю, здесь:

http://www.libsys.und.edu/dev/FloorPlans_All.pdf

Исходные исходные файлы были утеряны, и меня попросили извлечь изображения карты, желательно без текста и значков, наложенных поверх них. Это оказалось досадно трудным.

До сих пор я пробовал следующие программы с графическим интерфейсом:

  • Adobe Reader: позволяет выбирать текст, но не фоновые изображения
  • FoxIt PDF Viewer: позволяет мне выбирать текст, но не фоновые изображения
  • XPDF в Ubuntu 10.10: позволяет выбирать текст, но не фоновые изображения

А также следующие программы командной строки:

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

Я даже пытался открыть PDF вручную в текстовом редакторе и извлечь объекты потока, вставив их в новый файл и сохранив его с расширением.jpg,.png или.bmp (каждый по очереди). Учитывая, как мало я знаю о внутренней структуре файлов PDF, неудивительно, что это не сработало.

Итак... есть ли какой-нибудь способ, которым я могу извлечь изображения карты из этой вещи, не получая также текст и значки?

6 ответов

Решение

Вы можете загрузить библиотеку XPDF с http://www.foolabs.com/xpdf/download.html для Linux и Windows. Тогда беги pdfimages -j input.pdf output и вы должны получить output-000.jpg, output-001.jpgи т. д. Кроме того, проверьте http://linuxcommand.org/man_pages/pdfimages1.html для получения дополнительных возможностей использования.

Хорошо, после того, как я возился с этим в течение 5 минут, мой анализ заключается в том, что PDF даже страннее, чем я думал, и это о чем-то говорит.

Не уверен, каков ваш бюджет, но с Acrobat Pro Extended 9 вы можете использовать:

A. Инструменты, Расширенное редактирование, Touchup Text Tool

-Select All
-Right click, Properties
-Text tab
-Select a standard font (e.g. Arial), close
-Hit Delete

B. Инструменты, Расширенное редактирование, Инструмент Touchup Object

-Выберите объект (вы можете получить большинство, но не все, из них (например, значки компьютеров учеников не могут быть выбраны), затем удалите

Вот как выглядела Страница 1 после быстрой очистки: http://dl.dropbox.com/u/7434256/p1test.pdf

Возьмите PDF, созданный Крейгом Н, и немного оптимизируйте его, пропустив через Ghostscript. В Windows командная строка:

gswin32c.exe ^
   -o p1test-gs-optimized.pdf ^
   -sDEVICE=pdfwrite ^
   -dPDFSETTIINGS=/prepress ^
    p1test.pdf

В Linux/Unix/Mac OS X выполните:

gs \
   -o p1test-gs-optimized.pdf \
   -sDEVICE=pdfwrite \
   -dPDFSETTIINGS=/prepress \
    p1test.pdf

Это уменьшит размер файла с 3.000 кБайт до 60 кБайт без потери содержимого. Тогда его импорт в Inkscape (или InDesign, Illustrator,...) должен быть намного быстрее....

... вы можете попробовать Photoshop. Он читает PDF, и "возможно", он возник в PS и, возможно, все еще содержит слои... но это очень далеко.

В среде Linux я использовал pdfmod для извлечения всех изображений за один раз. См. https://wiki.gnome.org/Apps/PdfMod или, для пользователей Ubuntu, https://apps.ubuntu.com/cat/applications/pdfmod/

Чтобы скачать и установить его в Ubuntu, достаточно набрать sudo apt-get install pdfmod,

  • Запустите pdfmod GUI (введите pdfmod в панели управления или в терминале командной строки)
  • Откройте документ PDF
  • Выберите все страницы (или любые, с которых вы хотите извлечь изображения)
  • Пункт меню "Правка" предоставит возможность извлечь столько изображений, сколько их можно извлечь в выбранном диапазоне (export n images, с соответствующим номером). Вы также можете получить доступ к этой команде, наведя указатель мыши на выделение и активировав локальное меню (щелкните правой кнопкой мыши для правой руки).
  • Как только вы это сделаете, откроется новое окно, в котором вы выберете место для сохранения изображений.

Надеюсь это поможет.

Откройте документ на экране, увеличьте изображение, чтобы сделать его как можно больше, но все еще видно. Нажмите alt + prnt scrn (или эквивалент в вашей операционной системе), и он должен сделать снимок экрана программы. Теперь откройте краску или ваш любимый графический редактор (фотошоп, gimp и т. Д.), Вставьте изображение и обрежьте все, что вам не нужно.

Другие вопросы по тегам