PowerPoint prezentációk szövegének keresése és cseréje Pythonban

Áttekintés

Az Aspose.Slides for Python via .NET képes keresni, kiemelni és helyettesíteni a szöveget egyetlen szövegkeretben vagy egy teljes prezentáción. Ezek a képességek hasznosak felülvizsgálathoz, sötétítéshez, terminológiai ellenőrzésekhez, sablon-tisztításhoz és más automatizált dokumentumfeldolgozási munkafolyamatokhoz.

Az alábbi első példákban egy sample.pptx nevű fájlt használunk, amely az első dián egyetlen szövegdobozt tartalmaz a következő szöveggel:

Minta szöveg

A keresés hatókörének kiválasztása

Használja a TextFrame metódusait egy művelet egy szövegkeretre korlátozásához. Használja a Presentation metódusait a prezentációban található összes alkalmazható szöveg feldolgozásához.

Művelet Egy szövegkeret Teljes prezentáció
Kiemelés szó szerinti szöveg TextFrame.highlight_text Presentation.highlight_text
Kiemelés reguláris kifejezés egyezések TextFrame.highlight_regex Presentation.highlight_regex
Csere szó szerinti szöveg TextFrame.replace_text Presentation.replace_text
Csere reguláris kifejezés egyezések TextFrame.replace_regex Presentation.replace_regex

Szövegillesztés beállítása

Szó szerinti szöveg műveletekhez használja a TextSearchOptions beállítást a keresés szabályozásához:

Reguláris kifejezéssel végzett műveletek egy mintastringet használnak, ezért a kis‑ és nagybetűk érzékenysége és a szótárolók a kifejezésben vannak definiálva.

Szöveg kiemelése

Használja a TextFrame.highlight_text metódust a szó szerinti szöveg egyezéseinek kiemeléséhez egy szövegkeretben. Adja át a TextSearchOptions objektumot a keresés szabályozásához.

Az alábbi kódrészlet minden “try” előfordulást kiemel, majd csak a teljes “to” szót emeli ki.

import aspose.pydrawing as draw
import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    slide = presentation.slides[0]
    shape = slide.shapes[0]

    substring_search_options = slides.TextSearchOptions()
    substring_search_options.case_sensitive = False

    # Kiemeli a "try" minden előfordulását a szövegkeretben.
    shape.text_frame.highlight_text(
        "try", draw.Color.light_blue, substring_search_options, None
    )

    whole_word_search_options = slides.TextSearchOptions()
    whole_word_search_options.whole_words_only = True
    whole_word_search_options.case_sensitive = False

    # Kiemeli csak a teljes "to" szót.
    shape.text_frame.highlight_text(
        "to", draw.Color.violet, whole_word_search_options, None
    )

    presentation.save("highlighted_text.pptx", slides.export.SaveFormat.PPTX)

Az eredmény:

A kiemelt szöveg

Szöveg kiemelése reguláris kifejezésekkel

A TextFrame.highlight_regex metódus kiemeli a reguláris kifejezéssel található egyezéseket egy szövegkeretben.

Az alábbi kód minden olyan szót kiemel, amely legalább hét karaktert tartalmaz:

import aspose.pydrawing as draw
import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    slide = presentation.slides[0]
    shape = slide.shapes[0]
    word_pattern = r"\b[^\s]{7,}\b"

    shape.text_frame.highlight_regex(word_pattern, draw.Color.yellow, None)

    presentation.save(
        "highlighted_text_using_regex.pptx", slides.export.SaveFormat.PPTX
    )

Az eredmény:

A reguláris kifejezéssel kiemelt szöveg

Szöveg kiemelése egy teljes prezentációban

Használja a Presentation.highlight_text és a Presentation.highlight_regex metódusokat a prezentáció összes alkalmazható szövegkeretének kereséséhez. Az alábbi példa egy szó szerinti kifejezést és az összes e‑mail címet emeli ki:

import aspose.pydrawing as draw
import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    search_options = slides.TextSearchOptions()
    search_options.whole_words_only = True
    search_options.case_sensitive = False

    presentation.highlight_text(
        "confidential", draw.Color.orange, search_options, None
    )

    email_pattern = r"(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b"
    presentation.highlight_regex(email_pattern, draw.Color.yellow)

    presentation.save(
        "highlighted_presentation.pptx", slides.export.SaveFormat.PPTX
    )

Szöveg helyettesítése egy szövegkeretben

Használja a TextFrame.replace_text metódust szó szerinti szöveghez, és a TextFrame.replace_regex metódust mintazalapú helyettesítéshez. Ezek a metódusok az egyező szöveget a meglévő szövegkereten belül módosítják, megőrizve a környező rész formázását ahelyett, hogy egyszerű karakterláncból újraépítenék a keretet.

Az alábbi példa egységesíti egy helyesírási változatot, majd lecseréli a verziócímkéket:

import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    slide = presentation.slides[0]
    shape = slide.shapes[0]

    search_options = slides.TextSearchOptions()
    search_options.whole_words_only = True
    search_options.case_sensitive = False

    shape.text_frame.replace_text(
        "colour", "color", search_options, None
    )

    version_pattern = r"(?i)\bv\d+(?:\.\d+)*\b"
    shape.text_frame.replace_regex(version_pattern, "current version")

    presentation.save(
        "updated_text_frame.pptx", slides.export.SaveFormat.PPTX
    )

Ha egy egyezés különböző formázású részeket ölel fel, ellenőrizze a kimenetet, hogy melyik formázást kell alkalmazni a cserére.

Szöveg helyettesítése egy prezentációban

Használja a Presentation.replace_text és a Presentation.replace_regex metódusokat a műveletek ugyanúgy történő alkalmazásához a teljes prezentáción. Ez sablon‑tisztításhoz, terminológiai frissítésekhez és sötétítéshez hasznos.

import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    search_options = slides.TextSearchOptions()
    search_options.whole_words_only = True
    search_options.case_sensitive = True

    presentation.replace_text(
        "Contoso", "Example Corp", search_options, None
    )

    account_number_pattern = r"\bACCT-\d{6}\b"
    presentation.replace_regex(account_number_pattern, "ACCT-REDACTED")

    presentation.save(
        "updated_presentation.pptx", slides.export.SaveFormat.PPTX
    )

GYIK

Hogyan kereshetek csak egy szövegdobozban a teljes prezentáció helyett?

Szerezze be az alakzat szövegkeretét, és hívja meg a TextFrame.highlight_text, TextFrame.highlight_regex, TextFrame.replace_text vagy a TextFrame.replace_regex metódust azon a szövegkereten. A prezentációszintű metódusok minden alkalmazható szövegkeretet feldolgoznak helyette.

Hogyan illeszthetek teljes szavakat a megfelelő nagybetű‑érzékenységgel?

Állítsa be a TextSearchOptions.whole_words_only és a TextSearchOptions.case_sensitive értékét True‑ra, és adja át ezeket a szó szerinti kiemeléshez vagy csere‑metódushoz. Reguláris kifejezéseknél a szóhatárokat és a kis‑ és nagybetűk érzékenységét a mintában definiálja.

Tartalmazhat a keresés és csere a diák jegyzeteiben lévő szöveget is?

Igen. Állítsa a TextSearchOptions.include_notes értékét True‑ra, amikor prezentáció‑szintű szó szerinti műveletet hajt végre.

Megőrzi a szöveg helyettesítése a formázását?

A TextFrame.replace_text és a TextFrame.replace_regex módosítja az egyező szöveget a meglévő szövegkereten belül, és megőrzi a környező rész formázását. Ha egy egyezés különböző formázású részeket ölel fel, ellenőrizze az eredményt, hogy a csere a kívánt stílust használja‑e.