Сохранение презентаций в Python
Обзор
Открыть презентацию в Python описывает, как использовать класс Presentation для открытия презентации. Эта статья объясняет, как создавать и сохранять презентации. Класс Presentation содержит содержимое презентации. Независимо от того, создаёте ли вы презентацию с нуля или изменяете существующую, по завершении её нужно сохранить. С помощью Aspose.Slides для Python вы можете сохранять в файл или поток. В этой статье рассматриваются различные способы сохранения презентации.
Сохранение презентаций в файлы
Сохраните презентацию в файл, вызвав метод save класса Presentation. Передайте имя файла и формат сохранения в метод. Ниже приведён пример сохранения презентации с Aspose.Slides для Python.
import aspose.slides as slides
# Создайте объект класса Presentation, представляющий файл презентации.
with slides.Presentation() as presentation:
# Выполните здесь необходимые действия...
# Сохраните презентацию в файл.
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Сохранение презентаций в потоки
Вы можете сохранить презентацию в поток, передав выходной поток в метод save класса Presentation. Презентацию можно записать в различные типы потоков. В примере ниже создаётся новая презентация, добавляется текст в форму и сохраняется в поток.
import aspose.slides as slides
# Создайте экземпляр класса Presentation, представляющего файл презентации.
with slides.Presentation() as presentation:
with open("output.pptx", "bw") as file_stream:
# Сохраните презентацию в поток.
presentation.save(file_stream, slides.export.SaveFormat.PPTX)
Сохранение презентаций с предопределённым типом представления
Aspose.Slides для Python позволяет установить начальное представление, которое PowerPoint использует при открытии сгенерированной презентации, через класс ViewProperties. Установите свойство last_view значением из перечисления ViewType.
import aspose.slides as slides
with slides.Presentation() as presentation:
presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW
presentation.save("slide_master_view.pptx", slides.export.SaveFormat.PPTX)
Сохранение презентаций в строгом формате Office Open XML
Aspose.Slides позволяет сохранять презентацию в строгом формате Office Open XML. Используйте класс PptxOptions и задайте его свойство conformance при сохранении. Если установить Conformance.ISO_29500_2008_STRICT, выходной файл будет сохранён в строгом формате Office Open XML.
Ниже пример создания презентации и сохранения её в строгом формате Office Open XML.
import aspose.slides as slides
options = slides.export.PptxOptions()
options.conformance = slides.export.Conformance.ISO_29500_2008_STRICT
# Создайте экземпляр класса Presentation, представляющего файл презентации.
with slides.Presentation() as presentation:
# Сохраните презентацию в строгом формате Office Open XML.
presentation.save("strict_office_open_xml.pptx", slides.export.SaveFormat.PPTX, options)
Сохранение презентаций в формате Office Open XML в режиме Zip64
Файл Office Open XML представляет собой ZIP‑архив, который накладывает ограничения в 4 ГБ (2^32 байт) на несжатый размер любого файла, сжатый размер любого файла и общий размер архива, а также ограничивает количество файлов в архиве 65 535 (2^16‑1). Расширения формата ZIP64 повышают эти ограничения до 2^64.
Свойство PptxOptions.zip_64_mode позволяет выбирать, когда использовать расширения ZIP64 при сохранении файла Office Open XML.
Это свойство поддерживает следующие режимы:
IF_NECESSARYиспользует расширения ZIP64 только если презентация превышает указанные ограничения. Это режим по умолчанию.NEVERникогда не использует расширения ZIP64.ALWAYSвсегда использует расширения ZIP64.
Ниже код, демонстрирующий сохранение презентации в формате PPTX с включёнными расширениями ZIP64:
pptx_options = slides.export.PptxOptions()
pptx_options.zip_64_mode = slides.export.Zip64Mode.ALWAYS
with slides.Presentation("sample.pptx") as presentation:
presentation.save("output_zip64.pptx", slides.export.SaveFormat.PPTX, pptx_options)
ПРИМЕЧАНИЕ
При сохранении сZip64Mode.NEVER генерируется исключение PptxException, если презентацию нельзя сохранить в формате ZIP32.
Сохранение презентаций без обновления миниатюры
Свойство PptxOptions.refresh_thumbnail управляет генерацией миниатюры при сохранении презентации в PPTX:
- Если установлено
True, миниатюра обновляется во время сохранения. Это значение по умолчанию. - Если установлено
False, текущая миниатюра сохраняется. Если у презентации нет миниатюры, она не будет создана.
В коде ниже презентация сохраняется в PPTX без обновления её миниатюры.
import aspose.slides as slides
pptx_options = slides.export.PptxOptions()
pptx_options.refresh_thumbnail = False
with slides.Presentation("sample.pptx") as presentation:
presentation.save("output.pptx", slides.export.SaveFormat.PPTX, pptx_options)
Информация
Эта опция помогает сократить время, необходимое для сохранения презентации в формате PPTX.Информация
Aspose разработала бесплатное приложение PowerPoint Splitter, использующее собственный API. Приложение позволяет разбивать презентацию на несколько файлов, сохраняя выбранные слайды как новые файлы PPTX или PPT.FAQ
Поддерживается ли «быстрое сохранение» (инкрементальное сохранение), когда записываются только изменения?
Нет. При каждом сохранении создаётся полный целевой файл; инкрементальное «быстрое сохранение» не поддерживается.
Можно ли безопасно сохранять один и тот же экземпляр Presentation из нескольких потоков?
Нет. Экземпляр Presentation не является потокобезопасным; сохраняйте его из одного потока.
Что происходит с гиперссылками и внешними связанными файлами при сохранении?
Гиперссылки сохраняются. Внешние связанные файлы (например, видео по относительным путям) не копируются автоматически — убедитесь, что указанные пути остаются доступными.
Можно ли задавать/сохранять метаданные документа (Автор, Заголовок, Компания, Дата)?
Да. Стандартные свойства документа поддерживаются и будут записаны в файл при сохранении.