Wprowadzenie

Ten przewodnik pokazuje, jak programowo tworzyć, modyfikować i zapisywać prezentacje PowerPoint w Python przy użyciu Aspose.Slides FOSS. Biblioteka pozwala budować slajdy od podstaw, dodawać i zmieniać ich kolejność, wypełniać je kształtami, tabelami i sformatowanym tekstem oraz zapisywać wynik do formatu PPTX. Całe przetwarzanie odbywa się w czystym Python bez zależności od Microsoft Office ani żadnych zewnętrznych plików binarnych.

Biblioteka jest dostępna na PyPI jako aspose-slides-foss na licencji MIT. Zainstaluj ją za pomocą pip, zaimportuj i zacznij budować prezentacje w kilku linijkach kodu. Niezależnie od tego, czy automatyzujesz generowanie raportów, tworzysz pipeline slajdów, czy osadzasz wynik prezentacji w aplikacji webowej, API obejmuje pełne spektrum: kolekcje slajdów, slajdy master/layout, kolekcje kształtów, ramki tekstowe, formaty wypełnień i opcje eksportu.

Ten wpis przechodzi przez podstawowe możliwości zarządzania prezentacjami — klasy i metody, z których będziesz najczęściej korzystać przy pracy ze slajdami w Python.


Co zawiera

Cykl życia prezentacji

Klasa Presentation jest punktem wejścia. Utwórz nowy zestaw, manipuluj jego zawartością i zapisz do PPTX. Użyj Presentation jako menedżera kontekstu wraz z with, aby automatycznie zwalniać uchwyty plików.

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)

Operacje kolekcji slajdów

SlideCollection umożliwia dodawanie, wstawianie, klonowanie, usuwanie i zmienianie kolejności slajdów. len(pres.slides) odzwierciedla bieżącą liczbę po każdej zmianie.

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)

Kształty i AutoShapes

Dodaj prostokąty, elipsy, trójkąty i inne kształty geometryczne do dowolnego slajdu za pomocą ShapeCollection.add_auto_shape(). Każdy kształt udostępnia właściwości pozycji, rozmiaru, obrotu i wypełnienia, które utrzymują się pomiędzy zapisami/odczytami.

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

Tabele

Twórz tabele danych za pomocą ShapeCollection.add_table(), ustawiaj tekst komórek poprzez TextFrame, scalaj komórki i stosuj formatowanie obramowań. Wysokości wierszy i szerokości kolumn odpowiadają wartościom przekazywanym do konstruktora.

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])

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

    # Style the header row with a bottom border
    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.from_argb(255, 0, 0, 0)
        fmt.border_bottom.width = 2

Slajdy master i układu

Każda prezentacja ma hierarchię slajdów master i slajdów układu. Uzyskaj do nich dostęp za pomocą Presentation.masters i Presentation.layout_slides, aby zastosować spójną formatację w całej prezentacji.

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)

Właściwości dokumentu

Odczytuj i zapisuj wbudowane metadane, takie jak tytuł, autor i temat, za pomocą obiektu DocumentProperties. Ustaw dowolną z tych właściwości przed wywołaniem save() — są one osadzone w metadanych PPTX i czytelne dla narzędzi downstream:

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)

Szybki start

Uruchom następujące polecenie pip, aby zainstalować Aspose.Slides FOSS dla Python z PyPI:

pip install aspose-slides-foss

Poniższy przykład tworzy prezentację z kształtem tytułu, tabelą danych i wypełnieniem, a następnie zapisuje ją jako PPTX:

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)

Obsługiwane formaty

FormatRozszerzenieOdczytZapis
PPTX.pptx✓✓
PPT.ppt—Planned
PPSX.ppsx—Planned
PPTM.pptm—Planned
POTX.potx—Planned
ODP.odp—Planned
PDF.pdf—Planned
HTML.html—Planned
HTML5.html—Planned
TIFF.tiff—Planned
GIF.gif—Planned
XPS.xps—Planned
FODP.fodp—Planned
MD.md—Planned

Uwaga: Odczyt i zapis PPTX są w pełni zaimplementowane. Inne SaveFormat wartości (PPT, ODP, PDF, itp.) są planowane w przyszłych wydaniach; przekazywanie ich do save() obecnie generuje wyjście PPTX.


Open Source i licencjonowanie

Aspose.Slides FOSS dla Python jest udostępniony na licencji MIT. Możesz go używać w projektach osobistych, akademickich i komercyjnych bez ograniczeń. Kod źródłowy jest dostępny na GitHub, a pakiet został opublikowany na PyPI.


Rozpoczęcie

Powiązane zasoby