Prezentációk létrehozása Pythonban
Aspose.Slides FOSS for Python lehetővé teszi, hogy teljesen Pythonban hozzon létre PowerPoint prezentációkat, Microsoft Office függőség nélkül. Ez az útmutató bemutatja, hogyan lehet új prezentációt létrehozni, diákot és alakzatokat hozzáadni, szöveget formázni, és elmenteni az eredményt.
Lépésről‑lépésre útmutató
1. lépés: A csomag telepítése
Telepítse az Aspose.Slides FOSS‑t a PyPI‑ról. Python 3.10 vagy újabb szükséges.
pip install aspose-slides-fossEllenőrizze a telepítést:
import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")A lxml függőség automatikusan települ. Más rendszercsomagok nem szükségesek.
2. lépés: A szükséges modulok importálása
Importálja a csomagot és a mentéshez szükséges SaveFormat enumerációt.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeTypeMinden alakzat‑típusú állandó a aspose.slides_foss.ShapeType‑ben található. Minden formázási típus (FillType, NullableBool) szintén a aspose.slides_foss‑ben található.
3. lépés: Prezentáció létrehozása
Használja a slides.Presentation()-t kontextuskezelőként. Egy új bemutató egy üres diával kezdődik.
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)Fontos: Mindig nyissa meg és használja a Presentation-t egy with blokkban. Ne tároljon hivatkozást a with utasításon kívül; az erőforrások nem lesznek megfelelően felszabadítva.
4. lépés: Diához hozzáférés
Az első dia indexe 0. Egy üres prezentációnak pontosan egy diája van.
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)5. lépés: Alakzat hozzáadása
Használja a slide.shapes.add_auto_shape() parancsot egy AutoShape hozzáadásához. A paraméterek (shape_type, x, y, width, height) mind pontban (1 pont = 1/72 hüvelyk; a szabványos dia 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)6. lépés: A bemutató mentése
Hívja meg a prs.save(path, SaveFormat.PPTX)-t, mielőtt a with blokk kilép. A PPTX az egyetlen támogatott kimeneti formátum.
prs.save("result.pptx", SaveFormat.PPTX)A fájl atomik módon kerül írásra; ha hiba lép fel a hívás előtt, nem jön létre kimeneti fájl.
Teljesen működő példa
Az alábbi szkript egy kétslides prezentációt hoz létre, amelynek az első dián egy cím alakzat, a másodikon pedig egy táblázat található.
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")Gyakori problémák és megoldások
ResourceWarning: unclosed Presentation
Presentation-t with blokk nélkül példányosítja. Mindig használja:
with slides.Presentation() as prs:
...AttributeError: __enter__
Ha ezt a hibát látja, ellenőrizze, hogy aspose.slides_foss‑t importálta (nem aspose.slides). A csomag neve a PyPI‑n aspose-slides-foss, és a futásidejű import aspose.slides_foss.
TypeError: SaveFormat.PPTX is not callable
SaveFormat.PPTX egy enum tag, nem függvény. Használd úgy, mint prs.save("file.pptx", SaveFormat.PPTX).
Gyakran Ismételt Kérdések
Mi a alapértelmezett diák mérete?
Egy új Presentation() 10 × 7,5 hüvelykes (720 × 540 pont) méretű diákat hoz létre. A diák méretének módosítása még nem támogatott ebben a kiadásban.
Hozzáadhatok több mint egy diát?
Igen. Hívja meg a prs.slides.add_empty_slide(prs.layout_slides[0])-t, hogy egy üres diát fűzzön hozzá, és index szerint érje el:
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]Megnyithatok egy meglévő fájlt, és hozzáadhatok diákat?
Igen:
with slides.Presentation("existing.pptx") as prs:
prs.slides.add_empty_slide(prs.layout_slides[0])
prs.save("existing.pptx", SaveFormat.PPTX)Milyen formátumokba menthetek?
Csak a SaveFormat.PPTX támogatott. A PDF, HTML, SVG vagy képek exportálása nem érhető el ebben a kiadásban.