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-fossPā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 ShapeTypeVisi 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ā.