Как извлечь текст и изображения из файлов 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, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу