Kaip sukurti prezentacijas Python kalba
Aspose.Slides FOSS for Python leidžia kurti PowerPoint pristatymus visiškai Python kalba, nesikliaujant Microsoft Office. Šiame vadove parodyta, kaip sukurti naują pristatymą, pridėti skaidres ir formas, formatuoti tekstą ir išsaugoti rezultatą.
Žingsnis po žingsnio vadovas
Žingsnis 1: įdiekite paketą
Įdiekite Aspose.Slides FOSS iš PyPI. Reikalingas Python 3.10 arba naujesnė versija.
pip install aspose-slides-fossPatikrinkite diegimą:
import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")lxml priklausomybė įdiegiama automatiškai. Kiti sistemos paketai nėra reikalingi.
2 žingsnis: Importuokite reikiamus modulius
Importuokite paketą ir SaveFormat enum, reikalingą išsaugojimui.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeTypeVisos formų tipo konstantos yra aspose.slides_foss.ShapeType. Visų formatavimo tipų (FillType, NullableBool) taip pat yra aspose.slides_foss.
Žingsnis 3: Sukurti prezentaciją
Naudokite slides.Presentation() kaip kontekstų valdytoją. Nauja prezentacija prasideda viena tuščia skaidrė.
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)Svarbu: Visada atidarykite ir naudokite Presentation viduje with bloko. Nelaikykite nuorodos už with teiginio; ištekliai nebus teisingai atlaisvinti.
Žingsnis 4: Prieiga prie skaidrės
Pirmoji skaidrė yra indekse 0. Tuščia prezentacija turi lygiai vieną skaidrę.
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)Žingsnis 5: Pridėti formą
Naudokite slide.shapes.add_auto_shape(), kad pridėtumėte AutoShape. Parametrai yra (shape_type, x, y, width, height), visi matuojami taškais (1 taškas = 1/72 colio; standartinis skaidrės dydis yra 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 žingsnis: Išsaugoti pristatymą
Iškvieskite prs.save(path, SaveFormat.PPTX) prieš išeinant iš with bloko. PPTX yra vienintelis palaikomas išvesties formatas.
prs.save("result.pptx", SaveFormat.PPTX)Failas rašomas atominiu būdu; jei įvyksta klaida prieš šį iškvietimą, išvesties failas nesukuriamas.
Pilnas veikiantis pavyzdys
Žemiau pateiktas skriptas sukuria dviejų skaidrių pristatymą su antraštės forma pirmoje skaidrėje ir lentele antroje.
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")Dažnos problemos ir sprendimai
ResourceWarning: unclosed Presentation
Jūs inicijuojate Presentation be with bloko. Visada naudokite:
with slides.Presentation() as prs:
...AttributeError: __enter__
Jei matote šią klaidą, patikrinkite, ar importavote aspose.slides_foss (ne aspose.slides). Paketo pavadinimas PyPI yra aspose-slides-foss, o vykdymo metu importuojama aspose.slides_foss.
TypeError: SaveFormat.PPTX is not callable
SaveFormat.PPTX yra enum narys, o ne funkcija. Naudokite jį kaip prs.save("file.pptx", SaveFormat.PPTX).
Dažnai užduodami klausimai
Koks yra numatytasis skaidrės dydis?
Naujas Presentation() sukuria skaidres standartiniu 10 × 7,5 colio (720 × 540 taškų) dydžiu. Skaidrių dydžio keitimas šioje leidimo versijoje dar nepalaikomas.
Ar galiu pridėti daugiau nei vieną skaidrę?
Taip. Iškvieskite prs.slides.add_empty_slide(prs.layout_slides[0]), kad pridėtumėte tuščią skaidrę ir pasiektumėte ją pagal indeksą:
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]Ar galiu atidaryti esamą failą ir pridėti skaidrių?
Taip:
with slides.Presentation("existing.pptx") as prs:
prs.slides.add_empty_slide(prs.layout_slides[0])
prs.save("existing.pptx", SaveFormat.PPTX)Kokius formatus galiu išsaugoti?
Palaikoma tik SaveFormat.PPTX. Eksportavimas į PDF, HTML, SVG arba vaizdus šioje leidimo versijoje neprieinamas.