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

Руководство по Python: извлечение изображений и текста из PPT

Сегодня я расскажу о простом способе пакетного извлечения изображений и текста из PPT с помощью Python.
Мнение автора может не совпадать с мнением редакции

Когда нам нужно извлечь материалы, такие как изображения и текст из презентации PowerPoint, выполнение этого вручную — копирование и вставка по одному — не только отнимает много времени, но и повышает риск пропустить что-то или допустить ошибку. Сегодня я расскажу о простом способе пакетного извлечения изображений и текста из PPT с помощью Python.

Подготовка

Сначала необходимо установить Spire.Presentation для Python. Вы можете установить его через команду pip:

pip install Spire.Presentation

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

Часто изображения в PPT являются именно тем материалом, который нам нужен. Следующий код демонстрирует, как извлечь все изображения из PPT и сохранить их локально:

from spire.presentation.common import *

from spire.presentation import *

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

ppt = Presentation()

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

ppt.LoadFromFile("sample.pptx")

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

for i, image in enumerate(ppt.Images):

# Извлекаем и сохраняем изображение

ImageName = «ExtractImage/Images_» + str(i) + «.png»

image.Image.Save(ImageName)

ppt.Dispose()

Как это работает:

  1. Presentation(): создаёт объект документа PPT
  2. LoadFromFile(): загружает обрабатываемый PPT-файл
  3. ppt.Images: получает коллекцию всех изображений в документе
  4. image.Image.Save(): сохраняет изображение в формате PNG

После выполнения все изображения будут последовательно сохранены в папку ExtractImage с именами Images_0.png, Images_1.png и так далее.

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

Помимо изображений, извлечение текстового содержания также является частой задачей. Следующий код проходит по каждому слайду и извлекает текст из всех фигур:

from spire.presentation import *

from spire.presentation.common import *

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

pres = Presentation()

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

pres.LoadFromFile("Sample.pptx")

text = []

# Проходим по каждому слайду

for slide in pres.Slides:

# Проходим по каждой фигуре

for shape in slide.Shapes:

# Проверяем, является ли фигура типом IAutoShape (может содержать текст)

if isinstance(shape, IAutoShape):

# Извлекаем текст из фигуры

for paragraph in shape.TextFrame.Paragraphs:

text.append(paragraph.Text)

# Записываем извлечённый текст в файл

with open("output/SlideText.txt«, «w», encoding=’utf-8′) as f:

for s in text:

f.write(s + «\n»)

pres.Dispose()

Как это работает:

  1. pres.Slides: получает коллекцию всех слайдов
  2. slide.Shapes: получает все фигуры на каждом слайде
  3. IAutoShape: представляет тип автофигуры, которая может содержать текст
  4. shape.TextFrame.Paragraphs: получает коллекцию абзацев в фигуре
  5. В конце весь текст записывается в файл SlideText.txt, по одному абзацу на строку

Важные замечания

  1. Освобождение ресурсов : После использования объекта Presentation обязательно вызовите метод Dispose(), чтобы освободить ресурсы и избежать утечек памяти.
  2. Пути к файлам : Убедитесь, что путь к PPT-файлу указан верно. Папки для сохранения изображений и текста нужно создать заранее или программно.
  3. Кодировка текста : При записи в текстовые файлы используйте кодировку utf-8 для корректной обработки неанглийских символов, например кириллицы.
  4. Формат изображений : Метод Save() по умолчанию сохраняет изображения в формате PNG. Обратитесь к официальной документации, если вам нужны другие форматы.
  5. Типы фигур : Извлечение текста обрабатывает только тип IAutoShape. Если текст находится в других типах фигур, например в таблицах или диаграммах, потребуется дополнительная обработка.

Заключение

С помощью Spire.Presentation для Python вы можете пакетно извлекать изображения и текст из PPT всего несколькими строками кода. Эта библиотека мощная и простая в использовании, что делает её идеальной для сценариев офисной автоматизации. Надеюсь, эта статья поможет вам повысить эффективность работы!

Если у вас есть более широкие задачи по автоматизации обработки PPT, такие как создание презентаций, изменение содержимого, добавление диаграмм и т.д., Spire.Presentation предлагает множество других богатых возможностей, готовых к изучению.

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