База знаний

Python PPTX | Как работать с презентациями PowerPoint

Если вы хотите узнать, как создавать, читать, настраивать, объединять, клонировать или конвертировать презентации PowerPoint и OpenOffice с помощью Python без необходимости использования стороннего программного обеспечения, мы поможем вам.

Aspose.Slides for Python via .NET — это библиотека классов для работы с презентациями, предлагающая множество ключевых возможностей, таких как создание презентаций с нуля, конвертация презентаций, управление текстом, фигурами, таблицами, анимациями, предварительный просмотр слайдов, экспорт слайдов в PDF, TIFF, XPS, HTML и многое другое. Aspose.Slides for Python via .NET предоставляет демонстрационные примеры и готовый код, чтобы вы лучше поняли наш API.

Наш API предлагает следующие возможности:

  • Создание или клонирование слайдов из шаблонов
  • Работа с таблицами PowerPoint
  • Удаление или добавление защиты фигур
  • Добавление диаграмм MS Excel в виде OleObject‑ов
  • Генерация презентаций из базы данных
  • Защита презентаций
  • Создание и изменение диаграмм
  • Экспорт презентаций в PDF, XPS, HTML, JPEG, PNG, SVG и многие другие форматы

Поддерживаемые форматы файлов:

Aspose.Slides for Python via .NET может как загружать, так и сохранять следующие форматы файлов: PPT, POT, PPS, PPTX, POTX, PPSX, PPTM, PPSM, POTM, ODP, OTP, а также сохранять в форматах: TIFF, EMF, PDF, XPS, JPEG, PNG, GIFF, BMP, SVG, SWF, HTML, XAML.

Ниже мы покажем, как создать, открыть, объединить и сохранить презентацию, а также предоставим примеры кода.

Python PPTX | Как работать с презентациями PowerPoint

Как создать презентацию PowerPoint (PPTX) с помощью Python

Чтобы добавить новую линию на слайд с помощью Aspose.Slides for Python via .NET, выполните следующие шаги:

  1. Создайте экземпляр класса Presentation
  2. Получите ссылку на слайд, используя его индекс
  3. С помощью метода add_auto_shape, доступного через объект shapes, добавьте AutoShape типа LINE
  4. Сохраните презентацию в файл PPTX

Используя эти шаги, мы добавили линию на первый слайд презентации:

import aspose.slides as slides  

# Создаём объект Presentation, представляющий файл презентации
with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    slide.shapes.add_auto_shape(slides.ShapeType.LINE, 50, 150, 300, 0)
    presentation.save("NewPresentation_out.pptx", slides.export.SaveFormat.PPTX)

Как открыть презентацию с помощью Python

С помощью Aspose.Slides for Python via .NET разработчики могут получать доступ к существующим презентациям PowerPoint и изменять их.

Наш API предоставляет класс Presentation для открытия уже существующей презентации, и мы можем использовать один из подходящих конструкторов этого класса, чтобы создать объект на основе готового файла PowerPoint. В примере ниже показано, как открыть презентацию, вывести общее количество слайдов на экран.

import aspose.slides as slides

# Открываем файл презентации, передавая путь к файлу в конструктор класса Presentation
with slides.Presentation("pres.pptx") as pres:
    # Выводим общее количество слайдов в презентации
    print(pres.slides.length)

Если у вас очень большие презентации (например, размер 3 ГБ), их можно открыть следующим образом:

import aspose.slides as slides
import os

loadOptions = slides.LoadOptions()
loadOptions.blob_management_options = slides.BlobManagementOptions()
loadOptions.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED

with slides.Presentation("pres.pptx", loadOptions) as pres:
    # Огромная презентация загружена и готова к использованию, но потребление памяти остаётся низким.

    # Вносим любые изменения в презентацию.
    pres.slides[0].name = "Очень большая презентация"

    # Презентация будет сохранена в другой файл, потребление памяти всё ещё низкое во время сохранения.
    pres.save("veryLargePresentation-copy.pptx", slides.export.SaveFormat.PPTX)

    # Нельзя делать так! Будет выброшено исключение IO, потому что файл заблокирован, пока объект pres не будет уничтожен
    os.remove("pres.pptx")

# Здесь всё в порядке, исходный файл больше не заблокирован объектом pres
os.remove("pres.pptx")

Если вы создаёте презентацию, содержащую крупные объекты (очень большие изображения, видео, аудио и т.п.), используйте Blob‑функцию , чтобы снизить потребление памяти.

Как объединять презентации PowerPoint с помощью Python

Aspose.Slides for Python via .NET позволяет объединять презентации различными способами. Вы можете объединять презентации вместе с их фигурами, форматированием, текстом, стилями, комментариями и т.д., не теряя качества и данных. С помощью нашего API можно объединять целые презентации, отдельные слайды и презентации в одном формате (PPTX → PPTX, PPT → PPT и т.п.) или в разных форматах (PPTX → PPT, PPTX → ODP и т.д.).

Для объединения презентаций можно использовать методы add_clone из интерфейса ISlideCollection . Объект Presentation содержит коллекцию слайдов, и вы можете вызвать метод add_clone у выбранной презентации, после чего слайды будут объединены.

Объединение презентаций

С помощью метода AddClone (ISlide) вы можете комбинировать слайды, не опасаясь потери их внешнего вида и стилей (параметры по умолчанию). Ниже показано, как объединить презентации:

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide)
        pres1.save("combined.pptx", slides.export.SaveFormat.PPTX)

Объединение презентаций с изменением стиля слайдов

Если необходимо изменить стиль слайдов в результирующей презентации при их объединении, метод add_clone (ISlide, IMasterSlide, Boolean) позволяет это сделать.

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.masters[0], allow_clone_missing_layout = True)
        pres1.save("combined_with_master.pptx", slides.export.SaveFormat.PPTX)

Объединение конкретных слайдов

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

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.layout_slides[0])
        pres1.save("combined_with_layout.pptx", slides.export.SaveFormat.PPTX)

Больше способов объединения презентаций вы найдёте в разделе Merge Presentation документации.

Как сохранять презентации PowerPoint с помощью Python

С помощью Aspose.Slides for Python via .NET вы можете сохранять презентацию в файл или в поток. Ниже представлены примеры кода для обоих вариантов.

Сохранение презентации в файл

Для сохранения презентации в файл вызовите метод Save класса Presentation .

import aspose.slides as slides

# Создаём объект Presentation, представляющий PPT‑файл
with slides.Presentation() as presentation:
    
    # ...выполняем необходимые действия...

    # Сохраняем презентацию в файл
    presentation.save("Saved_out.pptx", slides.export.SaveFormat.PPTX)

Сохранение презентации в поток

Один из способов сохранить презентацию — это записать её в поток. Просто передайте выходной поток в метод Save класса Presentation . В примере ниже мы создаём новую презентацию, добавляем текст в фигуру и сохраняем её в поток.

import aspose.slides as slides

# Создаём объект Presentation, представляющий PPT‑файл
with slides.Presentation() as presentation:
    
    shape = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 200, 200)

    # Сохраняем презентацию в поток
    with open("Save_As_Stream_out.pptx", "bw") as stream:
        presentation.save(stream, slides.export.SaveFormat.PPTX)

В нашей документации вы можете узнать, как сохранять презентации с предустановленным типом представления , сохранять презентации в строгом формате Open XML Spreadsheet или сохранять прогресс в процентах .

Aspose.Slides for Python via .NET совместим с Python 3.5, 3.6, 3.7, 3.8, 3.9, а при работе с Python на Linux вы можете ознакомиться с дополнительными требованиями для Linux .

Платные консультации

Если вам нужна помощь в реализации проекта, у нас есть эксперты , которые работают с вами над решением, разрабатывают архитектуру и внедряют наш API в соответствии с вашими требованиями. Мы возьмём на себя сложную работу, чтобы вы могли сосредоточиться на своём бизнесе.