Как вытащить прикрепленные файлы из PDF-документа
Чтобы извлечь вложенный файл из PDF, откройте документ в Adobe Acrobat Reader или другом продвинутом просмотрщике, найдите панель «Вложения» (Attachments) и сохраните нужный файл на диск. Если встроенные средства не отображают вложения, используйте бесплатную утилиту pdfdetach (Linux/Windows) или специализированное ПО вроде Foxit Reader.
Важно отличать вложения (отдельные файлы, прикрепленные к документу, как в email) от встроенных изображений (часть содержимого страницы). Данная инструкция касается именно первых — файлов, которые автор документа прикрепил отдельно.
Быстрый совет: Если вы используете бесплатный Adobe Acrobat Reader DC, панель вложений часто скрыта. Нажмите Shift + F7 или выберите в меню: Просмотр → Показать/скрыть → Навигационные панели → Вложения.
Чем вложение отличается от картинки в тексте
Прежде чем искать инструменты, убедитесь, что файл действительно является вложением.
| Характеристика | Вложение (Attachment) | Встроенный объект (Image/Object) |
|---|---|---|
| Где находится | В специальном слое документа, не виден на страницах | Отображается непосредственно на странице PDF |
| Как выглядит | Иконка скрепки или список в боковой панели | Часть визуального контента страницы |
| Как извлечь | Через меню «Вложения» или спец. утилиты | Через экспорт изображения или скриншот |
Если файла нет в списке вложений, возможно, он просто вставлен как картинка. В таком случае методы ниже не сработают — потребуется конвертация PDF в Word или извлечение изображений.
Способ 1: Бесплатные PDF-ридеры (Windows и macOS)
Самый простой способ не требует установки сложного софта. Подойдут Adobe Acrobat Reader DC, Foxit Reader или PDF-XChange Editor.
Инструкция для Adobe Acrobat Reader DC
- Откройте PDF-файл.
- Откройте панель вложений одним из способов:
- Нажмите комбинацию клавиш
Shift + F7. - Перейдите в меню Просмотр → Показать/скрыть → Навигационные панели → Вложения.
- Нажмите комбинацию клавиш
- В левой панели появится список файлов.
- Нажмите правой кнопкой мыши на нужный файл и выберите Сохранить (Save Attachment).
- Укажите папку для сохранения.
Инструкция для Foxit Reader
- Откройте документ.
- Перейдите на вкладку Главная или Вид.
- Найдите кнопку Вложения (Attachments) в левой боковой панели.
- Дважды кликните по файлу или нажмите правой кнопкой → Сохранить как.
Внимание: Стандартный просмотрщик «Microsoft Edge» или «Google Chrome» не поддерживает извлечение вложений. Они могут отображать значок скрепки, но не дадут скачать файл. Используйте специализированный софт.
Способ 2: Командная строка (Linux, macOS, Windows)
Для пользователей Linux и продвинутых пользователей Windows лучший инструмент — утилита pdfdetach из пакета Poppler. Она работает быстро, бесплатно и позволяет извлекать все вложения одной командой.
Установка
- Ubuntu/Debian:
sudo apt install poppler-utils - macOS (Homebrew):
brew install poppler - Windows: Скачайте бинарные файлы Poppler для Windows и добавьте путь к
binв переменные среды.
Использование
Чтобы сохранить все вложения из файла document.pdf в текущую папку:
pdfdetach -saveall document.pdf
Чтобы сохранить конкретный файл (например, первый в списке):
pdfdetach -save 1 document.pdf
Чтобы посмотреть список вложений без сохранения:
pdfdetach -list document.pdf
Этот метод идеален для пакетной обработки сотен документов через скрипты.
Способ 3: Онлайн-сервисы
Если нет возможности установить ПО, можно использовать онлайн-инструменты. Этот способ подходит только для неконфиденциальных документов.
Популярные сервисы: iLovePDF, Smallpdf, PDF24.
- Зайдите на сайт сервиса (например, раздел «Извлечь данные из PDF» или «Разделить PDF», иногда вложения прячутся там).
- Загрузите файл.
- Сервис автоматически распознает вложенные объекты.
- Скачайте архив с извлеченными файлами.
Безопасность: Никогда не загружайте паспорта, финансовые отчеты или договоры с персональными данными на сторонние сайты. Вы не можете гарантировать, что сервер удалит файл после обработки.
Способ 4: Для разработчиков (Python)
Если нужно извлечь вложения программно, используйте библиотеку PyMuPDF (fitz). Она работает быстрее и стабильнее многих аналогов.
Пример скрипта для извлечения всех вложений:
import fitz # PyMuPDF
import sys
def extract_attachments(pdf_path, output_dir):
doc = fitz.open(pdf_path)
# Получаем список вложений
attachments = doc.embfile_count()
if attachments == 0:
print("Вложений не найдено.")
return
for i in range(attachments):
info = doc.embfile_info(i)
content = doc.embfile_get(i)
# Формируем имя файла
filename = info.get('filename', f'attachment_{i}')
filepath = f"{output_dir}/{filename}"
with open(filepath, 'wb') as f:
f.write(content)
print(f"Сохранено: {filename}")
if __name__ == "__main__":
# usage: python extract.py document.pdf ./output
extract_attachments(sys.argv[1], sys.argv[2])
Частые ошибки и проблемы
-
Панель «Вложения» пуста, но файл должен быть. Возможно, файл был сохранен в формате PDF/A (архивный стандарт), который может блокировать некоторые типы вложений, или вложения были удалены при оптимизации документа. Попробуйте открыть файл в Adobe Acrobat Pro (платном) — он показывает больше метаданных.
-
Файл извлекается с неправильным расширением. Иногда метаданные MIME-типа теряются. Если файл не открывается, попробуйте переименовать его, добавив расширение вручную (например,
.zip,.docx,.xlsx), исходя из контекста документа. -
Вложение запаролено. Если сам PDF-документ защищен паролем, сначала необходимо снять защиту с документа (если у вас есть права), иначе инструменты не получат доступ к внутренним объектам.
FAQ
Можно ли извлечь вложение через Microsoft Word? Нет. Если открыть PDF в Word, он попытается конвертировать текст и картинки, но игнорирует скрытые вложения (attachments).
Что делать, если вложение — это другой PDF? Процесс извлечения такой же. После сохранения откройте полученный файл как обычный PDF-документ.
Почему браузер не показывает вложения? Браузеры используют упрощенные движки рендеринга PDF, ориентированные на быстрый просмотр текста. Работа со сложной структурой документа (формы, слои, вложения) в них часто обрезана.