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-fossFö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
| Format | Filändelse | Läs | Skriv |
|---|---|---|---|
| PPTX | .pptx | ✓ | ✓ |
| PPT | .ppt | — | Planned |
| PPSX | .ppsx | — | Planned |
| PPTM | .pptm | — | Planned |
| POTX | .potx | — | Planned |
| ODP | .odp | — | Planned |
| — | 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.