Kuinka lisätä muotoja PowerPointiin Pythonilla
Aspose.Slides FOSS for Python tukee AutoShapes-, Tables-, Connectors- ja PictureFrames-objektien lisäämistä esitysdioihin. Kaikki muoto-tyypit lisätään slide.shapes-kokoelman kautta.
Vaiheittainen opas
Vaihe 1: Asenna paketti
pip install aspose-slides-fossVahvista asennus:
import aspose.slides_foss as slides
print("Ready")Vaihe 2: Luo esitys
Käytä aina Presentation kontekstinhallitsijana.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
# ... add shapes ...
prs.save("output.pptx", SaveFormat.PPTX)Vaihe 3: Lisää AutoShape
slide.shapes.add_auto_shape(shape_type, x, y, width, height) asettaa muodon annettuun sijaintiin ja kokoon (kaikki pisteinä). Käytä ShapeType vakioita muodon valitsemiseen.
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
rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
rect.add_text_frame("Rectangle shape")
# Ellipse
ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 100)
ellipse.add_text_frame("Ellipse shape")
prs.save("autoshapes.pptx", SaveFormat.PPTX)Vaihe 4: Lisää taulukko
slide.shapes.add_table(x, y, col_widths, row_heights) luo taulukon määritettyyn sijaintiin. Sarakkeiden leveydet ja rivien korkeudet ovat pistearvojen luetteloita.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
col_widths = [150.0, 150.0, 150.0]
row_heights = [40.0, 40.0, 40.0]
table = slide.shapes.add_table(50, 200, col_widths, row_heights)
# Set header row text
headers = ["Product", "Units", "Revenue"]
for col, text in enumerate(headers):
table.rows[0][col].text_frame.text = text
# Set data rows
rows = [
["Widget A", "120", "$2,400"],
["Widget B", "85", "$1,700"],
]
for row_idx, row_data in enumerate(rows):
for col, text in enumerate(row_data):
table.rows[row_idx + 1][col].text_frame.text = text
prs.save("table.pptx", SaveFormat.PPTX)Vaihe 5: Lisää liitin
Liittimet yhdistävät kaksi muotoa visuaalisesti. Luo muodot ensin, sitten lisää liitin ja aseta sen aloitus‑ ja lopetuspisteet.
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]
box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 100, 150, 60)
box1.add_text_frame("Start")
box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 350, 100, 150, 60)
box2.add_text_frame("End")
conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
conn.start_shape_connected_to = box1
conn.start_shape_connection_site_index = 3 # right side of box1
conn.end_shape_connected_to = box2
conn.end_shape_connection_site_index = 1 # left side of box2
prs.save("connector.pptx", SaveFormat.PPTX)Yhteyspisteiden indeksit on numeroitu 0–3 suorakulmiolle: ylä=0, vasen=1, ala=2, oikea=3.
Vaihe 6: Lisää kuvan kehys
Upota kuva ja lisää se diaan PictureFrame. Lue kuvan tavut ensin, lisää ne esityksen kuvakokoelmaan ja luo sitten kehys.
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
with open("logo.png", "rb") as f:
image_data = f.read()
image = prs.images.add_image(image_data)
slide = prs.slides[0]
slide.shapes.add_picture_frame(
ShapeType.RECTANGLE, # bounding shape type
50, 50, # x, y in points
200, 150, # width, height in points
image
)
prs.save("with-image.pptx", SaveFormat.PPTX)Yleiset ongelmat ja korjaukset
Muoto näkyy näkyvän dian alueen ulkopuolella
Diat ovat oletuksena 720 × 540 pistettä. x‑ tai y‑arvot, jotka ylittävät nämä rajat, asettavat muodon dian ulkopuolelle. Säilytä x < 720 ja y < 540, ja varmista x + width <= 720 ja y + height <= 540.
AttributeError: 'NoneType' object has no attribute 'text_frame'
add_auto_shape() palauttaa shape-objektin suoraan. Jos näet None, tarkista ettet hylkää palautusarvoa.
Taulukon solun teksti on tyhjä määrittämisen jälkeen
Oikea ominaisuus on .text_frame.text (ei .text suoraan solussa). Pääse soluihin käyttämällä table.rows[row_index][col_index].text_frame.text = "value".
Usein kysytyt kysymykset
Kuinka monta muotoa voin lisätä diaan?
Kirjaston asettamaa rajoitusta ei ole. Käytännön rajoitukset riippuvat tiedoston koosta ja kohde‑PPTX‑katselimen renderöintikyvystä.
Voinko muuttaa muodon sijaintia sen lisäämisen jälkeen?
Kyllä. add_auto_shape()-funktion palauttavalla shape-objektilla on x, y, width ja height-ominaisuudet, joita voit asettaa:
shape.x = 100
shape.y = 200
shape.width = 400
shape.height = 80Voinko asettaa muodon ääriviivan (reunan) värin?
Kyllä, via shape.line_format:
from aspose.slides_foss.drawing import Color
shape.line_format.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)Tukeeko kaavioita?
Ei. Kaaviot, SmartArt ja OLE‑objektit eivät ole toteutettu tässä versiossa, ja ne aiheuttavat NotImplementedError.