Präsentationstext in Python formatieren

Übersicht

Dieser Artikel zeigt, wie Text in PowerPoint‑ und OpenDocument‑Präsentationen mithilfe von Aspose.Slides für Python via .NET formatiert wird. Es werden Hervorhebung, Hintergrundfarben, Transparenz, Zeichenabstand, Schriftarteigenschaften, Drehung, Absatzabstand, Autofit‑Verhalten, Textverankerung, Tabstopps und Spracheinstellungen behandelt.

In den nachfolgenden Beispielen verwenden wir die Datei “sample.pptx”, die auf der ersten Folie ein einzelnes Textfeld mit folgendem Text enthält:

Beispieltext

Text hervorheben

Verwenden Sie die TextFrame.highlight_text‑Methode, wenn Sie Text hervorheben möchten, der einem bestimmten Muster innerhalb eines Textfelds entspricht. Die Methode wendet eine Hervorhebungsfarbe auf passende Textfragmente an und kann zusammen mit TextSearchOptions verwendet werden, um zu steuern, wie die Suche ausgeführt wird, beispielsweise um nur ganze Wörter zu treffen.

Das nachstehende Codebeispiel hebt alle Vorkommen der Zeichen “try” hervor und danach nur das ganze Wort “to”.

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

with slides.Presentation("sample.pptx") as presentation:
    # Das erste Shape von der ersten Folie holen.
    shape = presentation.slides[0].shapes[0]

    # Das Wort "try" im Shape hervorheben.
    shape.text_frame.highlight_text("try", draw.Color.light_blue)

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

    # Das Wort "to" im Shape hervorheben.
    shape.text_frame.highlight_text("to", draw.Color.violet, search_options, None)

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

Das Ergebnis:

Der hervorgehobene Text

Text mit regulären Ausdrücken hervorheben

Die TextFrame.highlight_regex‑Methode hebt Textübereinstimmungen hervor, die durch einen regulären Ausdruck gefunden wurden. In Python wird diese API über TextFrame bereitgestellt.

Das nachstehende Codebeispiel hebt alle Wörter hervor, die sieben oder mehr Zeichen enthalten:

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

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

    regex = r"\b[^\s]{7,}\b"

    # Alle Wörter mit sieben oder mehr Zeichen hervorheben.
    shape.text_frame.highlight_regex(regex, draw.Color.yellow, None)

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

Das Ergebnis:

Der hervorgehobene Text mithilfe des regulären Ausdrucks

Hintergrundfarbe für Text festlegen

Verwenden Sie ParagraphFormat.default_portion_format, um die Standard‑Hervorhebungsfarbe für einen Absatz festzulegen, oder verwenden Sie PortionFormat.highlight_color für einzelne Textabschnitte.

Das folgende Codebeispiel zeigt, wie die Hintergrundfarbe für den gesamten Absatz gesetzt wird:

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

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    # Die Hervorhebungsfarbe für den gesamten Absatz setzen.
    paragraph.paragraph_format.default_portion_format.highlight_color.color = draw.Color.light_gray

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

Das Ergebnis:

Der graue Absatz

Das nachstehende Codebeispiel demonstriert, wie die Hintergrundfarbe für Textabschnitte mit fetter Schrift gesetzt wird:

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

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    for portion in paragraph.portions:
        if portion.portion_format.get_effective().font_bold:
            # Die Hervorhebungsfarbe für den Textabschnitt setzen.
            portion.portion_format.highlight_color.color = draw.Color.light_gray

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

Das Ergebnis:

Die grauen Textabschnitte

Textabsätze ausrichten

Verwenden Sie ParagraphFormat.alignment, um die Absatzausrichtung innerhalb eines Textfelds festzulegen. Der Wert kann z. B. zentriert, linksbündig, rechtsbündig, im Blocksatz usw. sein.

Das folgende Codebeispiel zeigt, wie der Absatz zentriert ausgerichtet wird:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    # Die Ausrichtung des Absatzes auf Zentriert setzen.
    paragraph.paragraph_format.alignment = slides.TextAlignment.CENTER

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

Das Ergebnis:

Der ausgerichtete Absatz

Transparenz für Text festlegen

Die Transparenz von Text wird über die Alpha‑Komponente der Farbe gesteuert, die PortionFormat.fill_format zugewiesen wird. In den nachstehenden Beispielen ist alpha = 50 ein ARGB‑Alpha‑Wert im Bereich 0‑255 und keine prozentuale Angabe.

Das folgende Codebeispiel zeigt, wie Transparenz für den gesamten Absatz angewendet wird:

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

alpha = 50

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    # Die Füllfarbe des Textes auf transparente Farbe setzen.
    paragraph.paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
    paragraph.paragraph_format.default_portion_format.fill_format.solid_fill_color.color = draw.Color.from_argb(alpha, draw.Color.black)

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

Das Ergebnis:

Der transparente Absatz

Das nachstehende Codebeispiel zeigt, wie Transparenz für Textabschnitte mit fetter Schrift angewendet wird:

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

alpha = 50

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    for portion in paragraph.portions:
        if portion.portion_format.get_effective().font_bold:
            # Die Transparenz des Textabschnitts setzen.
            portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
            portion.portion_format.fill_format.solid_fill_color.color = draw.Color.from_argb(alpha, draw.Color.black)

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

Das Ergebnis:

Die transparenten Textabschnitte

Zeichenabstand für Text festlegen

Verwenden Sie BasePortionFormat.spacing, um den Abstand zwischen Zeichen in einem Textfeld zu vergrößern oder zu verkleinern.

Der folgende Python‑Code zeigt, wie der Zeichenabstand im gesamten Absatz vergrößert wird:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    # Hinweis: Verwenden Sie negative Werte, um den Zeichenabstand zu reduzieren.
    paragraph.paragraph_format.default_portion_format.spacing = 3  # Zeichenabstand vergrößern.

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

Das Ergebnis:

Der Zeichenabstand im Absatz

Das nachstehende Codebeispiel zeigt, wie der Zeichenabstand in Textabschnitten mit fetter Schrift vergrößert wird:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    for portion in paragraph.portions:
        if portion.portion_format.get_effective().font_bold:
            # Hinweis: Verwenden Sie negative Werte, um den Zeichenabstand zu reduzieren.
            portion.portion_format.spacing = 3  # Zeichenabstand vergrößern.

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

Das Ergebnis:

Der Zeichenabstand in den Textabschnitten

Kerning für bestimmte Schriftarten deaktivieren

In manchen Fällen sieht der von Aspose.Slides gerenderte Text etwas kompakter aus als derselbe Text in PowerPoint. Dies kann passieren, weil PowerPoint Kerning‑Daten für bestimmte Schriftarten ignoriert, selbst wenn die Schriftart gültige Kerning‑Informationen enthält und Kerning in den PowerPoint‑Einstellungen aktiviert ist.

Um die Darstellung in solchen Fällen PowerPoint‑ähnlicher zu machen, können Sie das Kerning für Textabschnitte deaktivieren, die die betroffene Schriftart verwenden. Setzen Sie PortionFormat.kerning_minimal_size auf einen Wert, der deutlich größer als die tatsächliche Schriftgröße ist:

import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    target_font = "Roboto"

    for paragraph in auto_shape.text_frame.paragraphs:
        for portion in paragraph.portions:
            latin_font = portion.portion_format.latin_font
            east_asian_font = portion.portion_format.east_asian_font
            complex_script_font = portion.portion_format.complex_script_font

            if ((latin_font is not None and latin_font.font_name == target_font) or
                    (east_asian_font is not None and east_asian_font.font_name == target_font) or
                    (complex_script_font is not None and complex_script_font.font_name == target_font)):
                portion.portion_format.kerning_minimal_size = 100

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

Diese Einstellung verhindert, dass Kerning auf passende Textabschnitte angewendet wird, und kann helfen, das Rendering von Aspose.Slides an die visuelle Ausgabe von PowerPoint für betroffene Schriftarten anzupassen.

Schriftarteigenschaften für Text verwalten

Schriftarteigenschaften können auf Absatzebene über ParagraphFormat.default_portion_format oder auf einzelne Abschnitte über PortionFormat festgelegt werden.

Der folgende Code setzt Schriftart und Textstil für den gesamten Absatz: Er wendet Schriftgröße, Fett, Kursiv, gepunktete Unterstreichung und die Schriftart Times New Roman auf alle Abschnitte des Absatzes an.

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    # Die Schriftarteigenschaften für den Absatz setzen.
    paragraph.paragraph_format.default_portion_format.font_height = 12
    paragraph.paragraph_format.default_portion_format.font_bold = slides.NullableBool.TRUE
    paragraph.paragraph_format.default_portion_format.font_italic = slides.NullableBool.TRUE
    paragraph.paragraph_format.default_portion_format.font_underline = slides.TextUnderlineType.DOTTED
    paragraph.paragraph_format.default_portion_format.latin_font = slides.FontData("Times New Roman")

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

Das Ergebnis:

Die Schriftarteigenschaften für den Absatz

Das nachstehende Codebeispiel wendet ähnliche Eigenschaften auf Textabschnitte mit fetter Schrift an:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    for portion in paragraph.portions:
        if portion.portion_format.get_effective().font_bold:
            # Die Schriftarteigenschaften für den Textabschnitt setzen.
            portion.portion_format.font_height = 13
            portion.portion_format.font_italic = slides.NullableBool.TRUE
            portion.portion_format.font_underline = slides.TextUnderlineType.DOTTED
            portion.portion_format.latin_font = slides.FontData("Times New Roman")

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

Das Ergebnis:

Die Schriftarteigenschaften für Textabschnitte

Textdrehung festlegen

Verwenden Sie TextFrameFormat.text_vertical_type, um eine vordefinierte Textausrichtung innerhalb einer Form festzulegen.

Der folgende Code setzt die Textausrichtung in der Form auf VERTICAL270, wodurch der Text um 90 Grad gegen den Uhrzeigersinn gedreht wird:

import aspose.slides as slides

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

    auto_shape.text_frame.text_frame_format.text_vertical_type = slides.TextVerticalType.VERTICAL270

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

Das Ergebnis:

Die Textdrehung

Benutzerdefinierte Drehung für Textfelder festlegen

Verwenden Sie TextFrameFormat.rotation_angle, um einen benutzerdefinierten Drehwinkel für ein TextFrame festzulegen.

Der folgende Code dreht das Textfeld um 3 Grad im Uhrzeigersinn innerhalb der Form:

import aspose.slides as slides

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

    auto_shape.text_frame.text_frame_format.rotation_angle = 3

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

Das Ergebnis:

Die benutzerdefinierte Textdrehung

Zeilenabstand von Absätzen festlegen

Aspose.Slides stellt ParagraphFormat.space_after, ParagraphFormat.space_before und ParagraphFormat.space_within zur Verfügung, um den Absatzabstand zu steuern. Diese Eigenschaften werden wie folgt verwendet:

  • Verwenden Sie einen positiven Wert, um den Zeilenabstand als Prozentsatz der Zeilenhöhe anzugeben.
  • Verwenden Sie einen negativen Wert, um den Zeilenabstand in Punkt anzugeben.

Der folgende Code zeigt, wie der Zeilenabstand innerhalb des Absatzes festgelegt wird:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    paragraph.paragraph_format.space_within = 200

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

Das Ergebnis:

Der Zeilenabstand innerhalb des Absatzes

Autofit‑Typ für Textfelder festlegen

TextFrameFormat.autofit_type bestimmt, wie sich Text verhält, wenn er die Grenzen seines Containers überschreitet. Verwenden Sie diese Einstellung, um zu steuern, ob der Text verkleinert, überläuft oder die Form automatisch anpasst.

import aspose.slides as slides

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

    auto_shape.text_frame.text_frame_format.autofit_type = slides.TextAutofitType.SHAPE

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

Verankerung von Textfeldern festlegen

TextFrameFormat.anchoring_type definiert, wie Text vertikal innerhalb einer Form positioniert wird, z. B. oben, mittig oder unten.

import aspose.slides as slides

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

    auto_shape.text_frame.text_frame_format.anchoring_type = slides.TextAnchorType.BOTTOM

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

Tabulation für Text festlegen

Verwenden Sie ParagraphFormat.default_tab_size und ParagraphFormat.tabs, um Tabstopps in einem Absatz zu konfigurieren.

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    paragraph = auto_shape.text_frame.paragraphs[0]

    paragraph.paragraph_format.default_tab_size = 100
    paragraph.paragraph_format.tabs.add(30, slides.TabAlignment.LEFT)

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

Das Ergebnis:

Die Absatz‑Tabs

Korrektursprache festlegen

Aspose.Slides bietet PortionFormat.language_id, mit dem Sie die Korrektursprache für einen Textabschnitt festlegen können. Die Korrektursprache bestimmt die Sprache, die für Rechtschreib‑ und Grammatikprüfungen in PowerPoint verwendet wird.

Der folgende Code zeigt, wie die Korrektursprache für einen Textabschnitt festgelegt wird:

import aspose.slides as slides

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

    paragraph = auto_shape.text_frame.paragraphs[0]
    paragraph.portions.clear()

    font = slides.FontData("SimSun")

    text_portion = slides.Portion()
    text_portion.portion_format.complex_script_font = font
    text_portion.portion_format.east_asian_font = font
    text_portion.portion_format.latin_font = font

    # Setze die Id einer Korrektursprache.
    text_portion.portion_format.language_id = "zh-CN"

    text_portion.text = "1."
    paragraph.portions.add(text_portion)

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

Standard‑Sprache festlegen

Verwenden Sie LoadOptions.default_text_language, um die Standardsprache für während des Ladens oder Erstellens einer Präsentation erzeugten Text festzulegen.

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.default_text_language = "en-US"

with slides.Presentation(load_options) as presentation:
    slide = presentation.slides[0]

    # Neues Rechteck-Shape mit Text hinzufügen.
    shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 20, 20, 150, 50)
    shape.text_frame.text = "Sample text"

    # Prüfe die Sprache des ersten Textabschnitts.
    portion = shape.text_frame.paragraphs[0].portions[0]
    print(portion.portion_format.language_id)

Standard‑Textstil festlegen

Um eine Standard‑Textformatierung auf Präsentationsebene anzuwenden, verwenden Sie Presentation.default_text_style.

Der folgende Code zeigt, wie ein Standard‑Fettschrift‑Stil mit einer Größe von 14 pt für allen Text in einer neuen Präsentation festgelegt wird.

import aspose.slides as slides

with slides.Presentation() as presentation:
    # Holen Sie das Absatzformat der obersten Ebene.
    paragraph_format = presentation.default_text_style.get_level(0)

    if paragraph_format is not None:
        paragraph_format.default_portion_format.font_height = 14
        paragraph_format.default_portion_format.font_bold = slides.NullableBool.TRUE

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

Text mit All‑Caps‑Effekt extrahieren

In PowerPoint sorgt der All Caps‑Schrifteffekt dafür, dass Text auf der Folie in Großbuchstaben angezeigt wird, obwohl er ursprünglich kleingeschrieben wurde. Wenn Sie einen solchen Textabschnitt mit Aspose.Slides auslesen, liefert die Bibliothek den Text exakt so zurück, wie er eingegeben wurde. Um den angezeigten Text zu erhalten, prüfen Sie TextCapType und wandeln Sie die zurückgegebene Zeichenkette in Großbuchstaben um, wenn der Wert ALL ist.

Angenommen, wir haben das folgende Textfeld auf der ersten Folie der Datei sample2.pptx.

Der All‑Caps‑Effekt

Der folgende Code zeigt, wie der Text mit angewendetem All Caps‑Effekt extrahiert wird:

import aspose.slides as slides

with slides.Presentation("sample2.pptx") as presentation:
    auto_shape = presentation.slides[0].shapes[0]
    text_portion = auto_shape.text_frame.paragraphs[0].portions[0]

    print("Original text:", text_portion.text)

    text_format = text_portion.portion_format.get_effective()
    if text_format.text_cap_type == slides.TextCapType.ALL:
        text = text_portion.text.upper()
        print("All-Caps effect:", text)

Ausgabe:

Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!

FAQ

Wie kann man Text in einer Tabelle auf einer Folie ändern?

Um Text in einer Tabelle auf einer Folie zu ändern, verwenden Sie Table. Durchlaufen Sie die Zellen und aktualisieren Sie jede Zelle über Cell.text_frame sowie die Absatzformatierung über Paragraph.paragraph_format.

Wie kann man einen Farbverlauf auf Text in einer PowerPoint‑Folie anwenden?

Um einen Farbverlauf auf Text anzuwenden, verwenden Sie PortionFormat.fill_format. Setzen Sie FillFormat.fill_type auf FillType.GRADIENT und konfigurieren Sie die Verlaufspunkte, Richtung und Transparenz.