Извлечение фоновых изображений из файла 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 и т. Д.), Вставьте изображение и обрежьте все, что вам не нужно.