Kā pievienot formas PowerPoint prezentācijai Python valodā
Aspose.Slides FOSS for Python atbalsta AutoShapes, Tables, Connectors un PictureFrames pievienošanu prezentācijas slaidiem. Visi formu veidi tiek pievienoti, izmantojot slide.shapes kolekciju.
Solī pa solim ceļvedis
1. solis: instalēt pakotni
pip install aspose-slides-fossPārbaudiet instalāciju:
import aspose.slides_foss as slides
print("Ready")2. solis: Izveidot prezentāciju
Vienmēr izmantojiet Presentation kā konteksta pārvaldnieku.
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)3. solis: Pievienot AutoShape
slide.shapes.add_auto_shape(shape_type, x, y, width, height) novieto formu dotajā pozīcijā un izmērā (visi punktos). Izmantojiet ShapeType konstantes, lai izvēlētos formu.
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)Solis 4: Pievienot tabulu
slide.shapes.add_table(x, y, col_widths, row_heights) izveido tabulu norādītā pozīcijā. Kolonnu platumi un rindu augstumi ir punktu vērtību saraksti.
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)Solis 5: Pievienot savienotāju
Savienotāji vizuāli savieno divas formas. Vispirms izveidojiet formas, pēc tam pievienojiet savienotāju un iestatiet tā sākuma un beigu savienojuma punktus.
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)Savienojuma vietas indeksi ir numurēti 0–3 taisnstūrim: augšā=0, pa kreisi=1, apakšā=2, pa labi=3.
Solis 6: Pievienot attēla rāmi
Iegult attēlu un pievienojiet to slaidam kā PictureFrame. Vispirms nolasiet attēla baitus, pievienojiet tos prezentācijas attēlu kolekcijai, tad izveidojiet rāmi.
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)Vispārējās problēmas un risinājumi
Forma parādās ārpus redzamās slaida zonas
Slaidi pēc noklusējuma ir 720 × 540 punkti. x vai y vērtības, kas pārsniedz šos robežus, novieto formu ārpus slaida. Saglabājiet x < 720 un y < 540, un pārliecinieties, ka x + width <= 720 un y + height <= 540.
AttributeError: 'NoneType' object has no attribute 'text_frame'
add_auto_shape() atgriež formas objektu tieši. Ja redzat None, pārbaudiet, vai neatmetat atgriezto vērtību.
Tabulas šūnas teksts ir tukšs pēc piešķiršanas
Pareizais īpašums ir .text_frame.text (nevis .text tieši uz šūnas). Piekļūstiet šūnām kā table.rows[row_index][col_index].text_frame.text = "value".
Biežāk uzdotie jautājumi
Cik daudz formu var pievienot slaidam?
Nav bibliotēkas noteikta ierobežojuma. Praktiskie ierobežojumi ir atkarīgi no faila lieluma un jūsu mērķa PPTX skatītāja renderēšanas iespējas.
Vai es varu mainīt formas pozīciju pēc tās pievienošanas?
Jā. Forma objekts, ko atgriež add_auto_shape(), ir ar x, y, width un height īpašībām, kuras varat iestatīt:
shape.x = 100
shape.y = 200
shape.width = 400
shape.height = 80Vai es varu iestatīt formas kontūras (malas) krāsu?
Jā, caur 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)Vai diagrammas tiek atbalstītas?
Nē. Diagrammas, SmartArt un OLE objekti nav ieviesti šajā izdevumā un izraisa NotImplementedError.