Prezentációk létrehozása Pythonban

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-foss

Ellenő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 ShapeType

Minden 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.


Lásd még

 Magyar