Въведение

Aspose.Slides FOSS for Python gives you full control over the PowerPoint presentation жизнения цикъл — създаване на плочки от скратене, добавяне и преоборудване слайдове, популяризиране им с формати, таблици и формат текст, както и да се съхранява резултата на PPTX, ODP, PDF или Всичко това се случва в чист Python без зависимост от Microsoft Office или всякакви външни бинарни.

Библиотеката е достъпна на PyPI като aspose-slides-foss под лиценз на MIT. инсталиране Тя с pip, да го вмъкнете и да започнете да изграждате презентации в няколко реда на кода. автоматизирате генерирането на отчети, изграждате тръбопровод с слой или вградете Изходът от презентацията в уеб приложение, API обхваща цялата повърхност: слайд колекции, слайдове за мастурбация/поставка, форми на колекциите, текстови рамки, формати за попълване и Износ на опции.

Тази статия променя основните възможности за представяне и управление – класовете и методите, които ще използвате най-много при работа с скиди в Python.


Какво е включено

Презентация за жизнения цикъл

и на Presentation клас е входната точка. създайте нов дек, манипулирайте съдържанието му, и да се съхранява във всеки поддържан формат. презентации подкрепят протокола за управление на контекста, Така ресурсите се освобождават автоматично.

import io
from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat

with Presentation() as pres:
    # A new presentation starts with one blank slide
    print("Slides:", len(pres.slides))  # 1

    # Save to a file
    pres.save("output.pptx", SaveFormat.PPTX)

    # Or save to a stream
    buf = io.BytesIO()
    pres.save(buf, SaveFormat.PPTX)

Слайд колекция операции

SlideCollection да ви позволи да добавите, вмъкнете, клонирате, премахвате и реорганизирате слайдове. Вместо това, индикаторът се актуализира така: len(pres.slides) Винаги се отразява на В момента броят.

from aspose.slides_foss import Presentation, ShapeType

with Presentation() as pres:
    layout = pres.layout_slides[0]

    # Add a blank slide using the first layout
    pres.slides.add_empty_slide(layout)

    # Insert at a specific position
    pres.slides.insert_empty_slide(1, layout)

    # Clone an existing slide (shapes are copied)
    pres.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 200, 100)
    pres.slides.add_clone(pres.slides[0])

    print("Total slides:", len(pres.slides))  # 4

    # Remove by index
    pres.slides.remove_at(3)

Форми и автоматериали

Добавете правоъгълници, елипси, триъгли и други геометрични форми към всяка слайда чрез ShapeCollection.add_auto_shape().Всяка форма излага позиция, размер, ротация, и да попълните свойствата, които продължават през цикъла на съхранение/рестартиране.

from aspose.slides_foss import Presentation, ShapeType

with Presentation() as pres:
    slide = pres.slides[0]
    slide.shapes.clear()

    rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 150)
    rect.rotation = 15

    ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 200)

    # Reorder z-index
    slide.shapes.reorder(0, ellipse)
    print("Front shape:", slide.shapes[0].shape_type)  # ELLIPSE

Таблица

Създаване на таблици с данни ShapeCollection.add_table(),Изграждане на текст чрез клетки TextFrame, сливане на клетки, и прилагане граничен форматиране. въртящи височини и колони Широките съответстват на стойностите, които предавате на строителя.

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

with Presentation() as pres:
    slide = pres.slides[0]
    slide.shapes.clear()

    table = slide.shapes.add_table(50, 50, [150, 150, 150], [40, 40, 40])
    table.rows[0][0].text_frame.text = "Name"
    table.rows[0][1].text_frame.text = "Role"
    table.rows[0][2].text_frame.text = "Team"

    # Merge two cells in the second row
    table.merge_cells(table.rows[1][0], table.rows[1][1], False)

    # Style the header row borders
    for col_idx in range(len(table.columns)):
        fmt = table.rows[0][col_idx].cell_format
        fmt.border_bottom.fill_format.fill_type = FillType.SOLID
        fmt.border_bottom.fill_format.solid_fill_color.color = Color.black
        fmt.border_bottom.width = 2

Магистър и слой Slides

Всяка презентация има йерархия на главните слайдове и слоевете за разписание. чрез Presentation.masters и Presentation.layout_slides да се прилага последователно Форматиране на вашия дек.

from aspose.slides_foss import Presentation

with Presentation() as pres:
    master = pres.masters[0]
    print("Master layouts:", len(master.layout_slides))

    # Pick a layout by type
    from aspose.slides_foss import SlideLayoutType
    title_layout = pres.layout_slides.get_by_type(SlideLayoutType.TITLE)
    if title_layout:
        pres.slides.add_empty_slide(title_layout)

Документални свойства

Прочетете и напишете вградени метаданни като заглавие, автор и предмет чрез DocumentProperties Продуктите остават в съхранения файл.

from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat

with Presentation() as pres:
    props = pres.document_properties
    props.title = "Quarterly Report"
    props.author = "Engineering"
    props.subject = "Q1 2026 Results"

    pres.save("report.pptx", SaveFormat.PPTX)

Бързо стартиране

pip install aspose-slides-foss
from aspose.slides_foss import Presentation, ShapeType, FillType, NullableBool
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with Presentation() as pres:
    slide = pres.slides[0]
    slide.shapes.clear()

    # Add a title shape
    title = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 30, 860, 80)
    tf = title.add_text_frame("Quarterly Report")
    tf.paragraphs[0].portions[0].portion_format.font_bold = NullableBool.TRUE
    tf.paragraphs[0].portions[0].portion_format.font_height = 28

    # Add a data table
    table = slide.shapes.add_table(50, 150, [200, 200, 200], [40, 40, 40])
    headers = ["Region", "Revenue", "Growth"]
    for i, h in enumerate(headers):
        table.rows[0][i].text_frame.text = h

    # Fill the title shape background
    title.fill_format.fill_type = FillType.SOLID
    title.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 51, 102)

    # Save as PPTX
    pres.save("report.pptx", SaveFormat.PPTX)

Подкрепени формати

ФорматътРазширяванеПрочететеПисане
PPTX.ППТК
PPT.ППТПланирани
PPSX.ППСХПланирани
PPTM.ППТМПланирани
POTX.ПотксПланирани
ODP.ОтпПланирани
PDF.pdf наПланирани
HTML.html наПланирани
HTML5.html наПланирани
TIFF.ТифПланирани
GIF.ГИФПланирани
XPS.КСНУМКСПланирани
FODP.ФОДППланирани
MD.МДРПланирани

Забележка : В момента се прилага само експортът на PPTX. Другите стойности на формата съществуват в SaveFormat еум за напредна съвместимост, но все още не са функционални. save() методът винаги произвежда PPTX изход, независимо от параметъра на формата.


Отворени източници и лицензиране

Aspose.Slides FOSS for Python is released under the MIT license. You can use it in лични, академични и търговски проекти без ограничения. източник код е: Достъпни на GitHub Пакетът е публикуван на PyPI.


Започваме