Вступ

Aspose.Slides FOSS for Python тепер доступний у PyPI: безкоштовна бібліотека з ліцензією MIT для створення, читання та редагування файлів PowerPoint .pptx повністю на Python, без залежності від Microsoft Office чи будь‑якого пропрієтарного середовища виконання.

Бібліотека розроблена для розробників, яким потрібно програмно генерувати або маніпулювати файлами презентацій: автоматизувати створення слайдів з даних, витягувати текст і метадані з завантажених файлів PPTX, будувати конвеєри звітності на основі презентацій або вбудовувати створення презентацій у веб‑додатки. Оскільки aspose-slides-foss — це чистий Python лише з lxml як залежністю, вона розгортається однаково на Windows, macOS, Linux та в Docker‑контейнерах.

Ключові особливості

  • Повна підтримка кругового проходу PPTX: Відкрийте будь‑який файл .pptx, змініть його вміст і збережіть назад, не втрачаючи невідомих XML‑частин, які бібліотека ще не розуміє.
  • Управління слайдами: Додавайте, видаляйте та перебирайте слайди за допомогою prs.slides; презентація починається з одного порожнього слайду після slides.Presentation().
  • AutoShapes, Tables, and Connectors: Вставляйте форми за допомогою slide.shapes.add_auto_shape(), табличні дані за допомогою slide.shapes.add_table() та візуальні з’єднувачі між формами за допомогою slide.shapes.add_connector().
  • Форматування багатого тексту: Форматуйте текст на рівні символів за допомогою PortionFormat: розмір шрифту, жирний, курсив, підкреслення та колір ARGB за допомогою FillType.SOLID і Color.from_argb().
  • Типи заповнення: Застосовуйте заповнення FillType.SOLID, GRADIENT, PATTERN або PICTURE до будь‑якої форми.
  • Візуальні ефекти: Зовнішня тінь, світіння, м’яка межа, розмиття, відображення та внутрішня тінь за допомогою shape.effect_format.
  • 3D‑форматування: Фаска, камера, система освітлення, матеріал та глибина екструзії за допомогою shape.three_d_format.
  • Нотатки доповідача: Прикріплюйте текст нотаток до кожного слайду за допомогою notes_slide_manager.add_notes_slide().
  • Тематичні коментарі: Додавайте коментарі з метаданими автора та позицією на слайді.
  • Вбудовані зображення: Вбудовуйте з файлу, байтів або потоку io.BytesIO.
  • Властивості документа: Читати та записувати основні, додаткові та користувацькі властивості.

Початок роботи

Встановити з PyPI. Python 3.10 або новіший потрібен; lxml встановлюється автоматично.

pip install aspose-slides-foss

Створіть свою першу презентацію з формою та збережіть її:

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeType

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")
    prs.save("hello.pptx", SaveFormat.PPTX)

Завжди використовуйте Presentation всередині блоку with; це забезпечує звільнення всіх внутрішніх ресурсів при виході з блоку.

Приклад форматування тексту

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    shape = prs.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Bold heading in corporate blue")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 28
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)
    prs.save("formatted.pptx", SaveFormat.PPTX)

Поточні обмеження

У цьому випуску наступні області викликають NotImplementedError:

  • Діаграми, SmartArt та OLE‑об’єкти
  • Анімації та переходи слайдів
  • Експорт у PDF, HTML, SVG або формати зображень
  • Гіперпосилання, налаштування дій, VBA‑макроси та цифрові підписи

Невідомі XML‑частини, виявлені під час завантаження, зберігаються дослівно при збереженні, тому PPTX‑файли, створені іншими інструментами, безпечно проходять цикл завантаження‑збереження.

Дивіться також