Часто задаваемые вопросы

Часто задаваемые вопросы

Часто задаваемые вопросы

Как установить Aspose.Slides FOSS?

Установите из PyPI с помощью pip. Требуется Python 3.10 или новее.

pip install aspose-slides-foss

Проверьте установку:

import aspose.slides_foss as slides
with slides.Presentation() as prs:
    print(f"Slides: {len(prs.slides)}")

Зависимость lxml устанавливается автоматически. Microsoft Office или другие системные среды выполнения не требуются.


Почему я должен использовать with slides.Presentation() as prs:?

Класс Presentation управляет внутренними файловыми дескрипторами и XML‑ресурсами. Без менеджера контекста эти ресурсы не освобождаются, когда объект Presentation выходит из области видимости, что может привести к утечкам ресурсов или блокировкам файлов в Windows.

Всегда следуйте этому шаблону:

with slides.Presentation("input.pptx") as prs:
    # work here
    prs.save("output.pptx", SaveFormat.PPTX)

В какие форматы файлов я могу сохранять?

Поддерживается только PPTX:

from aspose.slides_foss.export import SaveFormat
prs.save("output.pptx", SaveFormat.PPTX)

Экспорт в PDF, HTML, SVG или форматы изображений (PNG, JPEG) недоступен в этой версии.


Могу ли я открыть .ppt (старые файлы PowerPoint 97–2003)?

Нет. Поддерживаются только файлы .pptx (Office Open XML). Устаревший двоичный формат .ppt не обрабатывается этой библиотекой.


Как получить доступ к слайдам?

Слайды — это список с нулевой индексацией, доступный через prs.slides:

first_slide = prs.slides[0]
slide_count = len(prs.slides)

Как добавить второй слайд?

Используйте prs.slides.add_empty_slide() с макетом:

with slides.Presentation() as prs:
    layout = prs.layout_slides[0]
    prs.slides.add_empty_slide(layout)
    slide2 = prs.slides[1]
    prs.save("two-slides.pptx", SaveFormat.PPTX)

Как установить цвет фона слайда?

Окраска фона слайда не доступна в этой редакции. Класс Slide не раскрывает свойство background. Попытка slide.background вызовет AttributeError. Эта функция не реализована в текущей версии.


Как использовать NullableBool?

NullableBool — это три‑значный enum, используемый для свойств форматирования. Используйте NullableBool.TRUE (а не True из Python) для жирного, курсивного и подобных свойств:

from aspose.slides_foss import NullableBool, TextUnderlineType
fmt.font_bold = NullableBool.TRUE
fmt.font_italic = NullableBool.FALSE
# font_underline is TextUnderlineType, not NullableBool:
fmt.font_underline = TextUnderlineType.NOT_DEFINED  # inherits from theme

Почему установка цвета текста не оказывает эффекта?

Вы также должны установить fill_type = FillType.SOLID перед назначением цвета:

from aspose.slides_foss import FillType
from aspose.slides_foss.drawing import Color

fmt.fill_format.fill_type = FillType.SOLID
fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)

Могу ли я использовать диаграммы или SmartArt?

Нет. Диаграммы, SmartArt, OLE‑объекты, анимации, переходы, гиперссылки, макросы VBA и цифровые подписи не реализованы в этом издании и вызывают NotImplementedError.


Поддерживает ли библиотека Python 3.9?

Нет. Требуется Python 3.10 или более поздняя версия.


Эта библиотека потокобезопасна?

Каждый объект Presentation независим. Создание и использование отдельных экземпляров Presentation из разных потоков безопасно, при условии что вы не делите один объект Presentation между потоками без внешней блокировки.


Как вставить изображение?

Прочитайте байты изображения и добавьте их в prs.images, затем создайте PictureFrame:

with open("logo.png", "rb") as f:
    image_data = f.read()
image = prs.images.add_image(image_data)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 200, 150, image)

См. также

 Русский