Sådan opretter du præsentationer i Python
Aspose.Slides FOSS for Python giver dig mulighed for at oprette PowerPoint-præsentationer udelukkende i Python uden afhængighed af Microsoft Office. Denne vejledning viser, hvordan du opretter en ny præsentation, tilføjer slides og former, formaterer tekst og gemmer resultatet.
Trin-for-trin Guide
Trin 1: Installer pakken
Installer Aspose.Slides FOSS fra PyPI. Python 3.10 eller nyere er påkrævet.
pip install aspose-slides-fossBekræft installationen:
import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")Afhængigheden lxml installeres automatisk. Ingen andre systempakker er påkrævet.
Trin 2: Importer de nødvendige moduler
Importer pakken og SaveFormat-enum’en, der er nødvendig for at gemme.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeTypeAlle shape-type konstanter findes i aspose.slides_foss.ShapeType. Alle formateringstyper (FillType, NullableBool) er også i aspose.slides_foss.
Trin 3: Opret en præsentation
Brug slides.Presentation() som en kontekstmanager. En ny præsentation starter med et tomt dias.
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)Vigtigt: Åbn og brug altid Presentation inde i en with blok. Gem ikke en reference uden for with udsagnet; ressourcer frigives ikke korrekt.
Trin 4: Få adgang til et dias
Den første slide er på indeks 0. En tom præsentation har præcis ét slide.
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)Trin 5: Tilføj en form
Brug slide.shapes.add_auto_shape() til at tilføje en AutoShape. Parametrene er (shape_type, x, y, width, height) alle i point (1 point = 1/72 tomme; standard slide 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)Trin 6: Gem præsentationen
Kald prs.save(path, SaveFormat.PPTX) før with-blokken afslutter. PPTX er det eneste understøttede outputformat.
prs.save("result.pptx", SaveFormat.PPTX)Filen skrives atomisk; hvis der opstår en fejl før dette kald, oprettes der ingen outputfil.
Komplet Arbejdseksempel
Det følgende script opretter en præsentation med to dias, med en titel‑form på det første dias og en tabel på det andet.
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")Almindelige problemer og løsninger
ResourceWarning: unclosed Presentation
Du instansierer Presentation uden en with‑blok. Brug altid:
with slides.Presentation() as prs:
...AttributeError: __enter__
Hvis du ser denne fejl, skal du kontrollere, at du har importeret 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 funktion. Brug det som prs.save("file.pptx", SaveFormat.PPTX).
Ofte stillede spørgsmål
Hvad er standardstørrelsen på sliden?
En ny Presentation() opretter dias i den standard 10 × 7,5 tommer (720 × 540 punkt) størrelse. Ændring af diasstørrelsen understøttes endnu ikke i denne udgave.
Kan jeg tilføje mere end én slide?
Ja. Kald prs.slides.add_empty_slide(prs.layout_slides[0]) for at tilføje et tomt dias og få adgang til det via indeks:
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]Kan jeg åbne en eksisterende fil og tilføje slides?
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 gemme til?
Kun SaveFormat.PPTX understøttes. Eksport til PDF, HTML, SVG eller billeder er ikke tilgængelig i denne udgave.