Szövegdobozok kezelése prezentációkban Python segítségével
Bevezetés
A diákon a szövegek általában szövegdobozokban vagy alakzatokban vannak. Ezért, ha szöveget szeretne hozzáadni a diára, először egy szövegdobozt kell létrehozni, majd szöveget helyezni a dobozba. Az Aspose.Slides for Python biztosítja a AutoShape osztályt, amely lehetővé teszi szöveget tartalmazó alakzat hozzáadását.
Info
Az Aspose.Slides emellett a Shape osztályt is biztosítja. Azonban nem minden alakzat képes szöveget tartalmazni.Note
Ezért, ha egy olyan alakzattal dolgozik, amelyhez szöveget szeretne hozzáadni, érdemes ellenőrizni és megerősíteni, hogy az AutoShape osztályon keresztül lett átkonvertálva. Csak ekkor lesz lehetősége a TextFrame használatára, amely az AutoShape egy tulajdonsága. Lásd a Update Text szekciót ezen az oldalon.Szövegdobozok létrehozása a diákon
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást az első diára.
- Adjon hozzá egy AutoShape elemet
ShapeType.RECTANGLEtípussal a kívánt helyen a dián. - Állítsa be a szöveget az alakzat TextFrame tulajdonságában.
- Mentse a bemutatót PPTX fájlként.
Az alábbi Python példa megvalósítja ezeket a lépéseket:
import aspose.slides as slides
# Példányosítja a Presentation osztályt.
with slides.Presentation() as presentation:
# Lekéri a prezentáció első diáját.
slide = presentation.slides[0]
# Hozzáad egy RECTANGLE típusú AutoShape-et.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)
shape.text_frame.text = "Aspose TextBox"
# A prezentációt lemezre menti.
presentation.save("TextBox.pptx", slides.export.SaveFormat.PPTX)
Ellenőrizze, hogy az alakzat szövegdoboz-e
Az Aspose.Slides biztosítja az is_text_box tulajdonságot a AutoShape osztályon, amely lehetővé teszi meghatározni, hogy egy alakzat szövegdoboz-e.

Ez a Python példa bemutatja, hogyan ellenőrizhető, hogy egy alakzat szövegdobozként lett-e létrehozva:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
for slide in presentation.slides:
for shape in slide.shapes:
if isinstance(shape, slides.AutoShape):
print("shape is a text box" if shape.is_text_box else "shape is not a text box")
Felhívjuk a figyelmet, hogy ha egy AutoShape elemet a ShapeCollection osztály segítségével ad hozzá, az alakzat is_text_box tulajdonsága False értéket ad vissza. Azonban, ha szöveget ad hozzá – akár az add_text_frame metódussal, akár a text tulajdonság beállításával – a is_text_box True értéket ad.
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape1 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 10, 100, 40)
# shape1.is_text_box hamis
shape1.add_text_frame("shape 1")
# shape1.is_text_box igaz
shape2 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 110, 100, 40)
# shape2.is_text_box hamis
shape2.text_frame.text = "shape 2"
# shape2.is_text_box igaz
shape3 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 210, 100, 40)
# shape3.is_text_box hamis
shape3.add_text_frame("")
# shape3.is_text_box hamis
shape4 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 310, 100, 40)
# shape4.is_text_box hamis
shape4.text_frame.text = ""
# shape4.is_text_box hamis
Oszlopok hozzáadása a szövegdobozokhoz
Az Aspose.Slides a column_count és a column_spacing tulajdonságokat biztosítja a TextFrameFormat osztályban, hogy oszlopokat adhasson a szövegdobozokhoz. Megadhatja az oszlopok számát, és beállíthatja az oszlopok közti távolságot (pontban).
Az alábbi Python kód bemutatja ezt a műveletet:
import aspose.slides as slides
with slides.Presentation() as presentation:
# Lekéri a prezentáció első diáját.
slide = presentation.slides[0]
# Hozzáad egy RECTANGLE típusú AutoShape-et.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 300, 300)
# Hozzáad egy TextFrame-et a téglalaphoz.
shape.add_text_frame("All of these columns are confined to a single text container—" +
"you can add or delete text, and any new or remaining text automatically reflows " +
"within the container. You cannot have text flow from one container to another, " +
"though—PowerPoint’s column options for text are limited!")
# Lekéri a TextFrame szövegformázását.
format = shape.text_frame.text_frame_format
# Meghatározza az oszlopok számát a TextFrame-ben.
format.column_count = 3
# Meghatározza az oszlopok közti távolságot.
format.column_spacing = 10
# A prezentációt menti.
presentation.save("ColumnCount.pptx", slides.export.SaveFormat.PPTX)
Szöveg frissítése
Az Aspose.Slides lehetővé teszi a szöveg frissítését egyetlen szövegdobozban vagy az egész bemutatóban.
Az alábbi Python példa bemutatja, hogyan frissítheti az összes szöveget egy bemutatóban:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
for slide in presentation.slides:
for shape in slide.shapes:
if type(shape) is slides.AutoShape:
for paragraph in shape.text_frame.paragraphs:
for portion in paragraph.portions:
portion.text = portion.text.replace("years", "months")
portion.portion_format.font_bold = 1
# A módosított prezentáció mentése.
presentation.save("TextChanged.pptx", slides.export.SaveFormat.PPTX)
Szövegdobozok hozzáadása hiperhivatkozással
Beszúrhat egy hivatkozást egy szövegdobozba. Amikor a szövegdobozra kattintanak, a hivatkozás megnyílik.
Egy hiperhivatkozást tartalmazó szövegdoboz hozzáadásához kövesse az alábbi lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást az első diára.
- Adjon hozzá egy AutoShape elemet
ShapeType.RECTANGLEtípussal a kívánt helyen a dián. - Állítsa be a szöveget az alakzat TextFrame tulajdonságában.
- Szerezzen hivatkozást a HyperlinkManager objektumra.
- Használja a
hyperlink_managertulajdonságot egy külső kattintási hiperhivatkozás beállításához. - Mentse a bemutatót PPTX fájlként.
Ez a Python példa megmutatja, hogyan adjon hozzá egy hiperhivatkozással rendelkező szövegdobozt egy diához:
import aspose.slides as slides
# Példányosítja a Presentation osztályt.
with slides.Presentation() as presentation:
# Lekéri a prezentáció első diáját.
slide = presentation.slides[0]
# Hozzáad egy RECTANGLE típusú AutoShape-et.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 150, 150, 50)
text_portion = shape.text_frame.paragraphs[0].portions[0]
# Szöveget ad a kerethez.
text_portion.text = "Aspose.Slides"
# Beállít egy hiperhivatkozást a rész szövegéhez.
hyperlink_manager = text_portion.portion_format.hyperlink_manager
hyperlink_manager.set_external_hyperlink_click("http://www.aspose.com")
# A prezentációt PPTX fájlként menti.
presentation.save("Hyperlink.pptx", slides.export.SaveFormat.PPTX)
GYIK
Mi a különbség a szövegdoboz és a szöveghelyőrző között, amikor mester diákon dolgozik?
A placeholder a master stílusát/pozícióját örökli, és a layoutok során felülírható, míg egy hagyományos szövegdoboz egy önálló objektum egy adott dián, és nem változik, amikor a layoutot cseréli.
Hogyan végezhetek tömeges szövegcserét a teljes bemutatóban anélkül, hogy a diagramok, táblázatok és SmartArt szövegét módosítanám?
Korlátozza az iterációt azokra az auto-shape-ekre, amelyeknek van szövegkeretük, és hagyja ki a beágyazott objektumokat (charts, tables, SmartArt) úgy, hogy azok gyűjteményeit külön járja be, vagy kihagyja ezeket az objektumtípusokat.