Kaip pridėti formas į PowerPoint naudojant Python
Aspose.Slides FOSS for Python palaiko pridėti AutoShapes, Tables, Connectors ir PictureFrames į pristatymo skaidres. Visi formų tipai pridedami per slide.shapes kolekciją.
Žingsnis po žingsnio vadovas
Žingsnis 1: įdiekite paketą
pip install aspose-slides-fossPatikrinkite diegimą:
import aspose.slides_foss as slides
print("Ready")Žingsnis 2: Sukurti prezentaciją
Visada naudokite Presentation kaip kontekstų tvarkyklę.
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)Žingsnis 3: pridėti AutoShape
slide.shapes.add_auto_shape(shape_type, x, y, width, height) patalpina formą nurodytoje pozicijoje ir dydyje (visi taškais). Naudokite ShapeType konstantas, kad pasirinktumėte formą.
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)Žingsnis 4: Pridėti lentelę
slide.shapes.add_table(x, y, col_widths, row_heights) sukuria lentelę nurodytoje vietoje. Stulpelių plotiai ir eilučių aukščiai yra taškų verčių sąrašai.
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)Žingsnis 5: Pridėti jungtį
Jungikliai vizualiai sujungia dvi figūras. Pirma sukurkite figūras, tada pridėkite jungiklį ir nustatykite jo pradžios ir pabaigos prisijungimo taškus.
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)Jungties vietų indeksai yra numeruoti 0–3 stačiakampiui: viršus=0, kairė=1, apačia=2, dešinė=3.
Žingsnis 6: Pridėti paveikslėlio rėmelį
Įterpkite paveikslėlį ir pridėkite jį į skaidrę kaip PictureFrame. Pirma perskaitykite paveikslėlio baitus, pridėkite juos į pristatymo vaizdų kolekciją, tada sukurkite rėmelį.
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)Dažnos problemos ir sprendimai
Figūra atsiranda už matomo skaidrės ploto
Skaidrės pagal numatytuosius nustatymus yra 720 × 540 taškų. x arba y reikšmės, viršijančios šias ribas, padeda figūrą už skaidrės ribų. Išlaikykite x < 720 ir y < 540, ir užtikrinkite x + width <= 720 ir y + height <= 540.
AttributeError: 'NoneType' object has no attribute 'text_frame'
add_auto_shape() tiesiogiai grąžina formos objektą. Jei matote None, patikrinkite, ar neatsikratote grąžinamos vertės.
Lentelės langelio tekstas po priskyrimo yra tuščias
Teisinga savybė yra .text_frame.text (ne .text tiesiogiai ląstelėje). Pasiekite ląsteles kaip table.rows[row_index][col_index].text_frame.text = "value".
Dažnai užduodami klausimai
Kiek figūrų galiu pridėti į skaidrę?
Nėra bibliotekos nustatyto apribojimo. Praktiniai apribojimai priklauso nuo failo dydžio ir jūsų tikslo PPTX peržiūros programos atvaizdavimo galimybių.
Ar galiu pakeisti figūros padėtį po jos pridėjimo?
Taip. Formos objektas, kurį grąžina add_auto_shape(), turi x, y, width ir height savybes, kurias galite nustatyti:
shape.x = 100
shape.y = 200
shape.width = 400
shape.height = 80Ar galiu nustatyti figūros kontūro (rėmo) spalvą?
Taip, per 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)Ar diagramos palaikomos?
Ne. Diagramos, SmartArt ir OLE objektai šioje versijoje neįgyvendinti ir sukelia NotImplementedError.