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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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 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.