Sådan formateres tekst i Python

Sådan formateres tekst i Python

Aspose.Slides FOSS for Python giver finjusteret tekstformatering via PortionFormat-klassen. En Portion er den mindste uafhængige tekstenhed; den svarer til en enkelt formateringssekvens inden for et afsnit. Denne vejledning viser, hvordan man anvender fed, kursiv, skriftstørrelse og farveformatering på tekst i en præsentation.

Trin-for-trin guide

Trin 1: Installer pakken

pip install aspose-slides-foss

Trin 2: Tilføj en form med en tekstramme

Før du formaterer tekst, skal en form indeholde en TextFrame. Brug shape.add_text_frame() til at oprette en.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Default text: will be formatted")
    prs.save("output.pptx", SaveFormat.PPTX)

Trin 3: Få adgang til TextFrame

shape.add_text_frame() returnerer TextFrame‑objektet. Du kan også hente det senere via shape.text_frame.

tf = shape.text_frame          # if the frame already exists
tf = shape.add_text_frame("") # creates a new frame

En TextFrame indeholder en liste over Paragraph-objekter (tf.paragraphs). Hvert Paragraph indeholder Portion-objekter (paragraph.portions).


Trin 4: Anvend fed og kursiv formatering

Brug portion_format.font_bold og portion_format.font_italic. Disse egenskaber accepterer NullableBool.TRUE, NullableBool.FALSE eller NullableBool.NOT_DEFINED (arver fra master).

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Bold and italic text")

    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_bold = NullableBool.TRUE
    fmt.font_italic = NullableBool.TRUE

    prs.save("bold-italic.pptx", SaveFormat.PPTX)

Trin 5: Indstil skriftstørrelse og farve

Indstil portion_format.font_height for størrelse (i punkter) og brug fill_format til farve.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Large corporate-blue heading")

    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 32                          # 32pt font
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)

    prs.save("colored-text.pptx", SaveFormat.PPTX)

Color.from_argb(alpha, red, green, blue) accepterer værdier 0–255 for hver kanal.


Trin 6: Flere dele i ét afsnit

Et enkelt afsnit kan indeholde flere dele med forskellig formatering. Tilføj en ny Portion til et afsnits portions‑samling:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 600, 100)
    tf = shape.add_text_frame("")  # start with empty frame

    paragraph = tf.paragraphs[0]

    # First portion: normal text
    portion1 = paragraph.portions[0]
    portion1.text = "Normal text followed by "
    portion1.portion_format.font_height = 20

    # Second portion: bold red text
    portion2 = slides.Portion()
    portion2.text = "bold red text"
    portion2.portion_format.font_height = 20
    portion2.portion_format.font_bold = NullableBool.TRUE
    portion2.portion_format.fill_format.fill_type = FillType.SOLID
    portion2.portion_format.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)
    paragraph.portions.add(portion2)

    prs.save("mixed-format.pptx", SaveFormat.PPTX)

Almindelige problemer og løsninger

Tekst vises sort, selv efter at farven er indstillet

Sørg for, at fill_format.fill_type = FillType.SOLID er indstillet, før du tildeler farven. Uden at indstille fyldtypen kan farveændringen muligvis ikke have nogen effekt.

NullableBool.TRUE vs True

portion_format.font_bold forventer NullableBool.TRUE, ikke Python-True. Tildeling af Python-True kan udløse en TypeError eller stille gøre ingenting afhængigt af bindingen.

Skrift vises ikke i den gemte fil

latin_font-egenskaben angiver den latinske skrifttypefamilie. Hvis den ikke er angivet, bruges præsentationstemaets skrifttype. Tilpassede skrifttyper skal indlejres eller være tilgængelige på den maskine, der viser præsentationen.


Ofte stillede spørgsmål

Hvordan ændrer jeg skrifttypefamilien?

Sæt portion_format.latin_font:

fmt.latin_font = slides.FontData("Arial")

FontData accepterer skrifttypefamilienavnet som en streng.

Hvordan indstiller jeg afsnitsjustering?

Brug paragraph_format.alignment:

from aspose.slides_foss import TextAlignment

tf.paragraphs[0].paragraph_format.alignment = TextAlignment.CENTER

Understøttede værdier: LEFT, CENTER, RIGHT, JUSTIFY.

Hvordan indstiller jeg linjeafstand?

Brug paragraph_format.space_before (punkter før afsnit) eller paragraph_format.space_after (punkter efter afsnit):

tf.paragraphs[0].paragraph_format.space_before = 12   # 12pt before
tf.paragraphs[0].paragraph_format.space_after = 6     # 6pt after

Se også

 Dansk