Cum să creați prezentări în Python
Aspose.Slides FOSS for Python vă permite să creați prezentări PowerPoint în întregime în Python, fără dependență de Microsoft Office. Acest ghid arată cum să creați o prezentare nouă, să adăugați diapozitive și forme, să formatați textul și să salvați rezultatul.
Ghid pas cu pas
Pasul 1: Instalați pachetul
Instalați Aspose.Slides FOSS de pe PyPI. Este necesar Python 3.10 sau o versiune ulterioară.
pip install aspose-slides-fossVerificați instalarea:
import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")Dependența lxml este instalată automat. Nu sunt necesare alte pachete de sistem.
Pasul 2: Importă modulele necesare
Importați pachetul și enumul SaveFormat necesar pentru salvare.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeTypeToate constantele de tip formă se găsesc în aspose.slides_foss.ShapeType. Toate tipurile de formatare (FillType, NullableBool) se găsesc, de asemenea, în aspose.slides_foss.
Pasul 3: Creare prezentare
Folosiți slides.Presentation() ca manager de context. O prezentare nouă începe cu un singur diapozitiv gol.
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)Important: Deschideți și utilizați întotdeauna Presentation în interiorul unui bloc with. Nu stocați o referință în afara declarației with; resursele nu vor fi eliberate corect.
Pasul 4: Accesarea unui diapozitiv
Primul diapozitiv se află la indexul 0. O prezentare goală are exact un diapozitiv.
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)Pasul 5: Adaugă o formă
Utilizați slide.shapes.add_auto_shape() pentru a adăuga un AutoShape. Parametrii sunt (shape_type, x, y, width, height) toți în puncte (1 punct = 1/72 inch; diapozitivul standard este 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)Pasul 6: Salvați prezentarea
Apelați prs.save(path, SaveFormat.PPTX) înainte ca blocul with să iasă. PPTX este singurul format de ieșire suportat.
prs.save("result.pptx", SaveFormat.PPTX)Fișierul este scris atomic; dacă apare o eroare înainte de acest apel, nu se creează niciun fișier de ieșire.
Exemplu complet de lucru
Scriptul de mai jos creează o prezentare cu două diapozitive, cu o formă de titlu pe primul diapozitiv și un tabel pe al doilea.
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")Probleme comune și soluții
ResourceWarning: unclosed Presentation
Instanțiați Presentation fără un bloc with. Folosiți întotdeauna:
with slides.Presentation() as prs:
...AttributeError: __enter__
Dacă vezi această eroare, verifică că ai importat aspose.slides_foss (nu aspose.slides). Numele pachetului pe PyPI este aspose-slides-foss și importul la runtime este aspose.slides_foss.
TypeError: SaveFormat.PPTX is not callable
SaveFormat.PPTX este un membru de enum, nu o funcție. Folosiți-l ca prs.save("file.pptx", SaveFormat.PPTX).
Întrebări frecvente
Care este dimensiunea implicită a diapozitivului?
Un nou Presentation() creează diapozitive la dimensiunea standard de 10 × 7,5 inci (720 × 540 puncte). Modificarea dimensiunii diapozitivului nu este încă suportată în această ediție.
Pot adăuga mai mult de un slide?
Da. Apelă prs.slides.add_empty_slide(prs.layout_slides[0]) pentru a adăuga un diapozitiv gol și a-l accesa prin index:
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]Pot să deschid un fișier existent și să adaug diapozitive?
Da:
with slides.Presentation("existing.pptx") as prs:
prs.slides.add_empty_slide(prs.layout_slides[0])
prs.save("existing.pptx", SaveFormat.PPTX)În ce formate pot salva?
Doar SaveFormat.PPTX este suportat. Exportul în PDF, HTML, SVG sau imagini nu este disponibil în această ediție.