Поширені запитання

Поширені запитання

Часті запитання

Як встановити 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)

Які формати файлів я можу зберігати?

Enum SaveFormat визначає константи для багатьох форматів — PPTX, PDF, HTML, SVG, JPEG, PNG та інші — для сумісності API з комерційною версією. Під час виконання у цій FOSS‑версії всі виклики save() ігнорують аргумент формату і завжди записують вихід у форматі PPTX. Передача SaveFormat.PDF компілюється та виконується без помилок, але створює файл .pptx, а не .pdf.

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

Експорт у формати, відмінні від PPTX, функціонально недоступний у цьому випуску. Використовуйте SaveFormat.PPTX для всіх операцій збереження.


Чи можу я відкривати .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)

Див. також

 Українська