3

Как извлечь текст и изображения из файлов PowerPoint с помощью Python

Извлечение содержимого из PowerPoint может сделать информацию более доступной для тех, кто предпочитает другие форматы или нуждается в её интеграции в другие приложения. В этой статье я расскажу, как извлечь текст и изображения из презентаций PowerPoint с использованием бесплатной библиотеки для работы с презентациями на Python.

Библиотека Python для извлечения содержимого из PowerPoint

Free Spire.Presentation for Python — это мощная библиотека, позволяющая разработчикам программно создавать, читать, редактировать и манипулировать файлами PowerPoint. Одна из её ключевых возможностей — извлечение текста и изображений из презентаций, что позволяет эффективно извлекать и повторно использовать контент без необходимости ручного просмотра слайдов.

Чтобы начать работу с Free Spire.Presentation, установите её через PyPI с помощью следующей команды:

pip install spire.presentation.free

Извлечение текста из документа PowerPoint

С помощью Free Spire.Presentation можно получить доступ к конкретному слайду через свойство Presentation.Slides[index]. Затем нужно перебрать фигуры на слайде и проверить, является ли каждая из них экземпляром класса IAutoShape (что указывает на наличие текстового блока).

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

Вот пример кода для извлечения всего текста из презентации:

from spire.presentation import *

from spire.presentation.common import *

# Создаем объект класса Presentation

presentation = Presentation()

# Загружаем презентацию PowerPoint

presentation.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pptx")

# Создаем список для хранения текста

text = []

# Перебираем слайды в документе

for slide in presentation.Slides:

# Перебираем фигуры на слайде

for shape in slide.Shapes:

# Проверяем, является ли фигура объектом IAutoShape

if isinstance(shape, IAutoShape):

# Перебираем абзацы в фигуре

for paragraph in shape.TextFrame.Paragraphs:

# Добавляем текст абзаца в список

text.append(paragraph.Text)

# Записываем текст в файл

with open("output/ExtractAllText.txt", "w", encoding='utf-8') as f:

for s in text:

f.write(s + "\n")

# Освобождаем ресурсы

presentation.Dispose()

Извлечение изображений из файла PowerPoint

Свойство Presentation.Images возвращает список всех изображений, встроенных в документ. Перебирая этот список, можно сохранить каждое изображение в формате PNG с помощью метода Image.Save.

Пример извлечения всех изображений из PowerPoint:

from spire.presentation.common import *

from spire.presentation import *

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

presentation = Presentation()

# Загружаем документ PowerPoint

presentation.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pptx")

# Получаем изображения из документа

images = presentation.Images

# Перебираем изображения

for i, image in enumerate(images):

# Сохраняем каждое изображение в указанном пути

image_name = f"Output/Images_{i}.png"

image.Image.Save(image_name)

# Освобождаем ресурсы

presentation.Dispose()

Заключение

В этой статье мы рассмотрели различные методы извлечения текста, таблиц и изображений из отдельных слайдов или всей презентации с помощью Python. Используя эти техники, вы сможете оптимизировать свою работу и эффективно использовать материалы PowerPoint!

Программирование на python

866 постов11.9K подписчиков

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу