Часто задаваемые вопросы
Часто задаваемые вопросы
Как установить 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)