Hvordan lage presentasjoner i Python
Aspose.Slides FOSS for Python lar deg lage PowerPoint‑presentasjoner helt i Python uten avhengighet av Microsoft Office. Denne guiden viser hvordan du oppretter en ny presentasjon, legger til lysbilder og former, formaterer tekst og lagrer resultatet.
Steg-for-steg Guide
Steg 1: Installer pakken
Installer Aspose.Slides FOSS fra PyPI. Python 3.10 eller nyere kreves.
pip install aspose-slides-fossBekreft installasjonen:
import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")lxml-avhengigheten installeres automatisk. Ingen andre systempakker er påkrevd.
Trinn 2: Importer de nødvendige modulene
Importer pakken og SaveFormat-enumet som trengs for lagring.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeTypeAlle shape-type konstanter finnes i aspose.slides_foss.ShapeType. Alle formateringstyper (FillType, NullableBool) er også i aspose.slides_foss.
Trinn 3: Opprett en presentasjon
Bruk slides.Presentation() som en kontekstbehandler. En ny presentasjon starter med ett tomt lysbilde.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
print(f"Slides in new presentation: {len(prs.slides)}")
# work with prs inside this block
prs.save("output.pptx", SaveFormat.PPTX)Viktig: Åpne og bruk alltid Presentation inne i en with blokk. Ikke lagre en referanse utenfor with‑setningen; ressurser vil ikke bli frigitt korrekt.
Steg 4: Åpne et lysbilde
Den første lysbildet er på indeks 0. En tom presentasjon har nøyaktig ett lysbilde.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0] # zero-based index
print(f"Slide at index 0: {slide}")
prs.save("output.pptx", SaveFormat.PPTX)Steg 5: Legg til en form
Bruk slide.shapes.add_auto_shape() for å legge til en AutoShape. Parameterne er (shape_type, x, y, width, height) alle i punkter (1 punkt = 1/72 tomme; standard lysbilde er 720 × 540 pt).
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
# Rectangle at (50, 50) with 400 wide and 120 tall
shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)
# Attach a text frame
shape.add_text_frame("Hello from Aspose.Slides FOSS!")
prs.save("with-shape.pptx", SaveFormat.PPTX)Trinn 6: Lagre presentasjonen
Kall prs.save(path, SaveFormat.PPTX) før with-blokken avsluttes. PPTX er det eneste støttede output-formatet.
prs.save("result.pptx", SaveFormat.PPTX)Filen skrives atomisk; hvis en feil oppstår før dette kallet, opprettes ingen output‑fil.
Fullstendig fungerende eksempel
Det følgende skriptet oppretter en presentasjon med to lysbilder, med en tittelform på det første lysbildet og en tabell på det andre.
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:
# --- Slide 1: title shape ---
slide1 = prs.slides[0]
title = slide1.shapes.add_auto_shape(ShapeType.RECTANGLE, 40, 40, 640, 80)
tf = title.add_text_frame("Q1 Results: Executive Summary")
fmt = tf.paragraphs[0].portions[0].portion_format
fmt.font_height = 32
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)
# --- Slide 2: table ---
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]
table = slide2.shapes.add_table(40, 40, [200.0, 120.0, 120.0], [40.0, 40.0, 40.0])
headers = ["Region", "Revenue", "Growth"]
data = [
["North", "$1.2M", "+8%"],
["South", "$0.9M", "+4%"],
]
for col, header in enumerate(headers):
table.rows[0][col].text_frame.text = header
for row_idx, row_data in enumerate(data):
for col, cell_text in enumerate(row_data):
table.rows[row_idx + 1][col].text_frame.text = cell_text
prs.save("q1-results.pptx", SaveFormat.PPTX)
print("Saved q1-results.pptx")Vanlige problemer og løsninger
ResourceWarning: unclosed Presentation
Du instansierer Presentation uten en with‑blokk. Bruk alltid:
with slides.Presentation() as prs:
...AttributeError: __enter__
Hvis du ser denne feilen, sjekk at du importerte aspose.slides_foss (ikke aspose.slides). Pakkenavnet på PyPI er aspose-slides-foss og runtime‑importen er aspose.slides_foss.
TypeError: SaveFormat.PPTX is not callable
SaveFormat.PPTX er et enum‑medlem, ikke en funksjon. Bruk den som prs.save("file.pptx", SaveFormat.PPTX).
Ofte stilte spørsmål
Hva er standard lysbildestørrelse?
En ny Presentation() oppretter lysbilder i standardstørrelsen 10 × 7,5 tommer (720 × 540 punkt). Å endre lysbildestørrelsen støttes ikke ennå i denne utgaven.
Kan jeg legge til flere lysbilder?
Ja. Kall prs.slides.add_empty_slide(prs.layout_slides[0]) for å legge til et tomt lysbilde og få tilgang til det ved indeks:
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]Kan jeg åpne en eksisterende fil og legge til lysbilder?
Ja:
with slides.Presentation("existing.pptx") as prs:
prs.slides.add_empty_slide(prs.layout_slides[0])
prs.save("existing.pptx", SaveFormat.PPTX)Hvilke formater kan jeg lagre til?
Kun SaveFormat.PPTX støttes. Eksport til PDF, HTML, SVG eller bilder er ikke tilgjengelig i denne utgaven.