Kā izveidot prezentācijas Python valodā

Kā izveidot prezentācijas Python valodā

Aspose.Slides FOSS for Python ļauj izveidot PowerPoint prezentācijas pilnīgi Python valodā, bez atkarības no Microsoft Office. Šajā ceļvedī parādīts, kā izveidot jaunu prezentāciju, pievienot slaidus un formas, formatēt tekstu un saglabāt rezultātu.

Rokasgrāmata soli pa solim

1. solis: instalēt pakotni

Instalējiet Aspose.Slides FOSS no PyPI. Ir nepieciešams Python 3.10 vai jaunāks.

pip install aspose-slides-foss

Pārbaudiet instalāciju:

import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")

lxml atkarība tiek instalēta automātiski. Nav vajadzīgas citas sistēmas pakotnes.


2. solis: Importēt nepieciešamos moduļus

Importējiet pakotni un SaveFormat enumerāciju, kas nepieciešama saglabāšanai.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeType

Visi formu tipa konstanti atrodas aspose.slides_foss.ShapeType. Visi formatēšanas tipi (FillType, NullableBool) arī ir aspose.slides_foss.


3. solis: Izveidot prezentāciju

Izmantojiet slides.Presentation() kā konteksta pārvaldnieku. Jauna prezentācija sākas ar vienu tukšu slaidu.

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)

Svarīgi: Vienmēr atveriet un izmantojiet Presentation iekš with bloka. Neuzglabājiet atsauci ārpus with izteiksmes; resursi netiks pareizi atbrīvoti.


Solis 4: Piekļūt slaidam

Pirmais slaids ir indeksā 0. Tukšai prezentācijai ir tieši viens slaids.

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)

Solis 5: Pievienot formu

Izmantojiet slide.shapes.add_auto_shape(), lai pievienotu AutoShape. Parametri ir (shape_type, x, y, width, height), visi punktos (1 punkts = 1/72 collas; standarta slaids ir 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. solis: Saglabāt prezentāciju

Izsauciet prs.save(path, SaveFormat.PPTX) pirms with bloks iziet. PPTX ir vienīgais atbalstītais izvades formāts.

prs.save("result.pptx", SaveFormat.PPTX)

Fails tiek rakstīts atomiski; ja kļūda notiek pirms šī izsaukuma, netiek izveidots neviens izvades fails.


Pilns darbos piemērs

Šis skripts izveido divu slaidu prezentāciju ar virsraksta formu pirmajā slaidā un tabulu otrajā.

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")

Biežas problēmas un risinājumi

ResourceWarning: unclosed Presentation

Jūs izveidojat Presentation bez with bloka. Vienmēr lietojiet:

with slides.Presentation() as prs:
    ...

AttributeError: __enter__

Ja redzat šo kļūdu, pārbaudiet, vai importējāt aspose.slides_foss (nevis aspose.slides). Paketes nosaukums PyPI ir aspose-slides-foss, un izpildlaika imports ir aspose.slides_foss.

TypeError: SaveFormat.PPTX is not callable

SaveFormat.PPTX ir enum loceklis, nevis funkcija. Izmantojiet to kā prs.save("file.pptx", SaveFormat.PPTX).


Biežāk uzdotie jautājumi

Kāda ir noklusējuma slaida izmērs?

Jauns Presentation() izveido slaidus standarta 10 × 7,5 collas (720 × 540 punktu) izmērā. Slaidu izmēra mainīšana šajā izdevumā vēl nav atbalstīta.

Vai varu pievienot vairāk nekā vienu slaidu?

Jā. Izsauciet prs.slides.add_empty_slide(prs.layout_slides[0]), lai pievienotu tukšu slaidu un piekļūtu tam pēc indeksa:

prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]

Vai varu atvērt esošu failu un pievienot slaidus?

Jā:

with slides.Presentation("existing.pptx") as prs:
    prs.slides.add_empty_slide(prs.layout_slides[0])
    prs.save("existing.pptx", SaveFormat.PPTX)

Kādus formātus es varu saglabāt?

Tikai SaveFormat.PPTX ir atbalstīts. Eksportēšana uz PDF, HTML, SVG vai attēliem nav pieejama šajā izdevumā.


Skatīt arī

 Latviešu