Text in Präsentationen in Python formatieren
Übersicht
Dieser Artikel zeigt, wie man Text in PowerPoint- und OpenDocument‑Präsentationen mit Aspose.Slides für Python via .NET formatiert. Er behandelt Hintergrundfarben, Transparenz, Zeichenabstand, Schriftarteigenschaften, Drehung, Absatzabstand, Autofit‑Verhalten, Textausrichtung, Tabulatoren und Spracheinstellungen.
In den nachstehenden Beispielen verwenden wir die Datei „sample.pptx“, die auf der ersten Folie ein einzelnes Textfeld mit folgendem Text enthält:

Um Literal‑Text oder reguläre Ausdruck‑Übereinstimmungen zu finden und zu markieren, siehe Text suchen und ersetzen.
Text‑Hintergrundfarbe festlegen
Verwenden Sie ParagraphFormat.default_portion_format, um die Standard‑Highlight‑Farbe 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 festgelegt 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]
# Legt die Hervorhebungsfarbe für den gesamten Absatz fest.
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 festgelegt 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:
# Legt die Hervorhebungsfarbe für den Textabschnitt fest.
portion.portion_format.highlight_color.color = draw.Color.light_gray
presentation.save("gray_text_portions.pptx", slides.export.SaveFormat.PPTX)
Das Ergebnis:

Absätze ausrichten
Verwenden Sie ParagraphFormat.alignment, um die Absatzausrichtung innerhalb eines Textfeldes festzulegen. Der Wert kann z. B. zentriert, linksbündig, rechtsbündig, blockiert 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]
# Setzt die Ausrichtung des Absatzes auf die Mitte.
paragraph.paragraph_format.alignment = slides.TextAlignment.CENTER
presentation.save("aligned_paragraph.pptx", slides.export.SaveFormat.PPTX)
Das Ergebnis:

Transparenz für Text festlegen
Die Texttransparenz 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, nicht ein Prozentwert für Transparenz.
Das folgende Codebeispiel zeigt, wie Transparenz auf 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]
# Setzt die Füllfarbe des Texts auf eine transparente Farbe.
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 folgende Codebeispiel zeigt, wie Transparenz auf 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:
# Setzt die Transparenz des Textabschnitts.
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 verringern.
Der folgende Python‑Code zeigt, wie der Zeichenabstand im gesamten Absatz erweitert 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 komprimieren.
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 erweitert 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 komprimieren.
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 einigen Fällen kann Text, der von Aspose.Slides gerendert wird, etwas enger erscheinen als derselbe Text in PowerPoint. Das 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 gerenderte Ausgabe in solchen Fällen PowerPoint anzunähern, können Sie das Kerning für Textabschnitte deaktivieren, die die betroffene Schriftart verwenden. Setzen Sie BasePortionFormat.kerning_minimal_size auf einen Wert, der deutlich größer ist als die tatsächliche Schriftgröße:
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 verwalten
Schriftarteigenschaften können auf Absatzebene über ParagraphFormat.default_portion_format oder für einzelne Abschnitte über PortionFormat festgelegt werden.
Der folgende Code setzt Schrift und Textstil für den gesamten Absatz: Er wendet Schriftgröße, Fett, Kursiv, gepunktete Unterstreichung und die Schriftart Times New Roman auf alle Abschnitte im Absatz 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]
# Setze die Schriftarteigenschaften für den Absatz.
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:
# Setze die Schriftarteigenschaften für den Textabschnitt.
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:

Textrotation festlegen
Verwenden Sie TextFrameFormat.text_vertical_type, um eine vordefinierte Textorientierung innerhalb einer Form festzulegen.
Der folgende Code setzt die Textorientierung in der Form auf VERTICAL270, wodurch der Text 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 Rotation für Textfelder festlegen
Verwenden Sie TextFrameFormat.rotation_angle, um einen benutzerdefinierten Rotationswinkel 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 bereit, 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 Punkten anzugeben.
Das folgende Codebeispiel 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 Eigenschaft, 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)
Tabulatoren für Text festlegen
Verwenden Sie ParagraphFormat.default_tab_size und ParagraphFormat.tabs, um Tabulatorstopps 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:

Rechtschreibsprache festlegen
Aspose.Slides bietet PortionFormat.language_id, mit dem Sie die Rechtschreibsprache für einen Textabschnitt festlegen können. Die Rechtschreibsprache bestimmt die Sprache, die für Rechtschreib‑ und Grammatikprüfungen in PowerPoint verwendet wird.
Der folgende Code zeigt, wie die Rechtschreibsprache 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
# Legt die Id einer Rechtschreibsprache fest.
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 beim Laden oder Erstellen einer Präsentation erzeugten Text zu definieren.
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]
# Fügt eine neue Rechteckform mit Text hinzu.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 20, 20, 150, 50)
shape.text_frame.text = "Sample text"
# Prüft die Sprache des ersten Abschnitts.
portion = shape.text_frame.paragraphs[0].portions[0]
print(portion.portion_format.language_id)
Standard‑Textstil festlegen
Um die Standard‑Textformatierung auf Präsentationsebene anzuwenden, verwenden Sie Presentation.default_text_style.
Der folgende Code zeigt, wie ein standardmäßiger fetter Font mit 14 pt Größe für allen Text über alle Folien einer neuen Präsentation festgelegt wird.
import aspose.slides as slides
with slides.Presentation() as presentation:
# Ruft das Absatzformat der obersten Ebene ab.
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 bewirkt die Anwendung des All Caps‑Schrifteffekts, dass Text auf der Folie in Großbuchstaben angezeigt wird, obwohl er ursprünglich in Kleinbuchstaben eingegeben wurde. Wenn Sie einen solchen Textabschnitt mit Aspose.Slides abrufen, gibt die Bibliothek den Text exakt so zurück, wie er eingegeben wurde. Um den angezeigten Text nachzubilden, prüfen Sie TextCapType und konvertieren Sie die zurückgegebene Zeichenfolge in Großbuchstaben, 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 wendet man einen Farbverlauf auf Text in einer PowerPoint‑Folien an?
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.