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.

Szövegdobozok létrehozása a diákon

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezzen hivatkozást az első diára.
  3. Adjon hozzá egy AutoShape elemet ShapeType.RECTANGLE típussal a kívánt helyen a dián.
  4. Állítsa be a szöveget az alakzat TextFrame tulajdonságában.
  5. 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.

Text box and shape

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:

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezzen hivatkozást az első diára.
  3. Adjon hozzá egy AutoShape elemet ShapeType.RECTANGLE típussal a kívánt helyen a dián.
  4. Állítsa be a szöveget az alakzat TextFrame tulajdonságában.
  5. Szerezzen hivatkozást a HyperlinkManager objektumra.
  6. Használja a hyperlink_manager tulajdonságot egy külső kattintási hiperhivatkozás beállításához.
  7. 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.