Introduktion

Den här guiden visar hur du skapar, ändrar och sparar PowerPoint-presentationer programatiskt i Python med Aspose.Slides FOSS. Biblioteket låter dig bygga bildspel från grunden, lägga till och omordna bilder, fylla dem med former, tabeller och formaterad text, och spara resultatet till PPTX. All bearbetning sker i ren Python utan beroende av Microsoft Office eller någon extern binär.

Biblioteket finns tillgängligt på PyPI som aspose-slides-foss under MIT-licensen. Installera det med pip, importera det och börja bygga presentationer på några kodrader. Oavsett om du automatiserar rapportgenerering, bygger en slide-deck-pipeline eller bäddar in presentationsutdata i en webbapplikation, täcker API hela ytan: bildsamlingar, master-/layoutbilder, formsamlingar, textramar, fyllningsformat och exportalternativ.

Det här inlägget går igenom de grundläggande presentation-hanteringsfunktionerna — de klasser och metoder du kommer att använda mest när du arbetar med bilder i Python.


Vad som ingår

Presentationens livscykel

Klassen Presentation är startpunkten. Skapa en ny deck, manipulera dess innehåll och spara till PPTX. Använd Presentation som en kontext-hanterare med with för att automatiskt frigöra filhandtag.

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)

Bildsamlingens operationer

SlideCollection låter dig lägga till, infoga, klona, ta bort och omordna bilder. len(pres.slides) visar det aktuella antalet efter varje ändring.

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)

Former och AutoShapes

Lägg till rektanglar, ellipser, trianglar och andra geometriska former på vilken bild som helst via ShapeCollection.add_auto_shape(). Varje form exponerar egenskaperna position, storlek, rotation och fyllning som bevaras över spar- och laddningscykler.

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

Tabeller

Skapa datatabeller med ShapeCollection.add_table(), ange celltext via TextFrame, slå ihop celler och tillämpa kantformat. Radhöjder och kolumnbredder matchar de värden du skickar till konstruktorn.

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

Master- och layoutbilder

Varje presentation har en hierarki av masterbilder och layoutbilder. Åtkomst till dem sker via Presentation.masters och Presentation.layout_slides för att tillämpa enhetlig formatering i hela din presentation.

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)

Dokumentegenskaper

Läs och skriv inbyggd metadata såsom titel, författare och ämne via DocumentProperties-objektet. Ställ in någon av dessa egenskaper innan du anropar save() — de är inbäddade i PPTX-metadata och kan läsas av efterföljande verktyg:

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)

Snabbstart

Kör följande pip-kommando för att installera Aspose.Slides FOSS för Python från PyPI:

pip install aspose-slides-foss

Följande exempel skapar en presentation med en titelform, en datatabell och en fyllning, och sparar den sedan som 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)

Stödda format

FormatFiländelseLäsSkriv
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

Obs: PPTX-läsning och -skrivning är fullt implementerade. Andra SaveFormat värden (PPT, ODP, PDF, etc.) är planerade för framtida releaser; att skicka dem till save() producerar för närvarande PPTX-utdata.


Öppen källkod & licensiering

Aspose.Slides FOSS för Python är släppt under MIT-licensen. Du kan använda det i personliga, akademiska och kommersiella projekt utan restriktioner. Källkoden är tillgänglig på GitHub och paketet är publicerat på PyPI.


Komma igång

Relaterade resurser