Главное Авторские колонки Вакансии Вопросы
Выбор редакции:
65 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Читайте PDF в Python: извлечение текста и изображений

Сегодня мы расскажем, как использовать Spire.PDF для Python — мощную библиотеку, которая позволяет извлекать текст и изображения из PDF всего за несколько строк кода.
Мнение автора может не совпадать с мнением редакции

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

Раньше работа с PDF была настоящей головной болью, но с нужными библиотеками все становится проще. Сегодня мы расскажем, как использовать Spire.PDF для Python — мощную библиотеку, которая позволяет извлекать текст и изображения из PDF всего за несколько строк кода.

Перед началом убедитесь, что вы установили библиотеку Spire.PDF:

pip install Spire.PDF

1. Загрузка PDF-документа

Прежде чем что-либо делать, нужно загрузить файл PDF в наш код. Spire.PDF очень гибкая и поддерживает загрузку как по пути к файлу , так и из потока данных (Stream) .

Метод 1: загрузка из файла

from spire.pdf import PdfDocument

# Создаем экземпляр PdfDocument

pdf = PdfDocument()

# Загружаем локальный PDF-документ

pdf.LoadFromFile("sample.pdf")

Это самый прямой подход для фиксированных файлов на локальном диске.

Метод 2: загрузка из потока данных

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

from spire.pdf import PdfDocument, Stream

# Читаем файл как массив байтов (демо: читаем из файла; также может прийти по сети)

withopen("sample.pdf«, «rb») as f:

byte_data = f.read()

# Создаем объект потока

pdfStream = Stream(byte_data)

# Загружаем PDF из потока

pdf = PdfDocument(pdfStream)

2. Извлечение текста

Извлечение текста — одна из самых распространенных задач при обработке документов. Следующий код показывает, как пройти по всем страницам PDF и объединить текст с каждой страницы.

В основном используются два вспомогательных класса: PdfTextExtractor и PdfTextExtractOptions. Установка IsExtractAllText = True помогает гарантировать, что будет извлечено большинство видимого текста на странице.

from spire.pdf import PdfDocument, Stream

# Читаем файл как массив байтов (демо: читаем из файла; также может прийти по сети)

withopen("sample.pdf«, «rb») as f:

byte_data = f.read()

# Создаем объект потока

pdfStream = Stream(byte_data)

# Загружаем PDF из потока

pdf = PdfDocument(pdfStream)

3. Извлечение изображений

Во многих случаях ключевая информация в PDF на самом деле скрыта в иллюстрациях или диаграммах. Spire.PDF также предоставляет очень удобное решение для извлечения изображений.

Используя вспомогательный класс PdfImageHelper, мы можем напрямую получить сведения об изображениях на странице, а затем сохранить каждое изображение как файл (например, .png).

# Получаем первую страницу (индекс равен 0)

page = pdf.Pages.get_Item(0)

# Создаем объект помощника по изображениям

image_helper = PdfImageHelper()

# Получаем всю информацию об изображениях на странице

images_info = image_helper.GetImagesInfo(page)

# Проходим по списку и сохраняем каждое изображение

for i in range(len(images_info)):

# Сохраняем в формате PNG

images_info[i].Image.Save(f"output/Images/image_{i}.png")

print(f"Успешно извлечено {len(images_info)} изображений")

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

4. Продвинутые советы

Хотя код выше покрывает основы, в реальных приложениях есть несколько моментов, на которые стоит обратить внимание:

  1. Обработка страниц : в примере извлекаются все тексты для демонстрации. Если вам нужно обрабатывать страницу за страницей, просто управляйте pageIndex в цикле.
  2. Поддержка китайского : библиотека хорошо поддерживает китайский язык. При извлечении китайских PDF убедитесь, что ваше окружение кодировки использует UTF-8.
  3. Ограничения бесплатной редакции : если вы используете бесплатную версию Spire.PDF, имейте в виду, что она обычно имеет ограничение на количество страниц, которые можно обработать (например, только первые 10 страниц). Если нужно обрабатывать много страниц, возможно, придется оценить коммерческую версию.

Итог

С Spire.PDF для Python вы обнаружите, что обработка PDF-файлов удивительно проста. Независимо от того, нужно ли вам читать файл, анализировать текст постранично или сохранять ценные иллюстрации — все можно сделать всего несколькими строками кода. Это значительно повышает эффективность обработки документов, позволяя сосредоточиться на следующих шагах — анализе данных или бизнес-логике.

Попробуйте уже сейчас — пусть код освободит вам руки!

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.