Въведение

Aspose.Slides FOSS for Python вече е достъпен в PyPI: безплатна библиотека с лиценз MIT за създаване, четене и редактиране на PowerPoint .pptx файлове изцяло в Python, без зависимост от Microsoft Office или какъвто и да е собственически runtime.

Библиотеката е проектирана за разработчици, които трябва да генерират или манипулират презентационни файлове програмно: автоматизиране на слайдове от данни, извличане на текст и метаданни от качени PPTX файлове, изграждане на базирани на презентации конвейери за отчитане или вграждане на създаване на презентации в уеб приложения. Тъй като aspose-slides-foss е чист Python с единствена зависимост lxml, тя се разгръща идентично на Windows, macOS, Linux и Docker контейнери.

Ключови функции

  • Пълна двупосочна поддръжка на PPTX: Отворете всеки .pptx файл, променете съдържанието му и го запишете обратно, без да се губят неизвестни XML части, които библиотеката все още не разбира.
  • Управление на слайдове: Добавяйте, премахвайте и обхождайте слайдове с помощта на prs.slides; презентацията започва с един празен слайд след slides.Presentation().
  • AutoShapes, таблици и конектори: Вмъквайте форми чрез 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 файловете, създадени от други инструменти, се обработват безопасно при повторно зареждане.

Вижте също