Hvordan formatere tekst i Python

Hvordan formatere tekst i Python

Aspose.Slides FOSS for Python provides fine-grained text formatting through the PortionFormat klasse. En Portion er den minste uavhengige enheten av tekst; den tilsvarer en enkelt formateringskjøring innenfor et avsnitt. Denne guiden viser hvordan du bruker fet, kursiv, skriftstørrelse og fargeformatering på tekst i en presentasjon.

Steg-for-steg guide

Steg 1: Installer pakken

pip install aspose-slides-foss

Steg 2: Legg til en form med en tekstramme

Før du formaterer tekst, må en form inneholde en TextFrame. Bruk shape.add_text_frame() for å opprette 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)

Steg 3: Få tilgang 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 inneholder en liste over Paragraph objekter (tf.paragraphs). Hver Paragraph inneholder Portion objekter (paragraph.portions).


Steg 4: Bruk fet og kursiv formatering

Bruk portion_format.font_bold og portion_format.font_italic. Disse egenskapene godtar 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)

Steg 5: Angi skriftstørrelse og farge

Sett portion_format.font_height for størrelse (i punkter) og bruk fill_format for farge.

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) godtar verdier 0–255 for hver kanal.


Steg 6: Flere Portioner i ett avsnitt

Et enkelt avsnitt kan inneholde flere deler med ulik formatering. Legg til en ny Portion til et avsnitts 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)

Vanlige problemer og løsninger

Teksten vises svart selv etter at fargen er satt

Sikre fill_format.fill_type = FillType.SOLID er satt før fargen tilordnes. Uten å sette fylltype kan fargeendringen ha ingen effekt.

NullableBool.TRUE vs True

portion_format.font_bold forventer NullableBool.TRUE, ikke Python True. Tilordning av Python True kan utløse en TypeError eller stille gjøre ingenting avhengig av bindingen.

Skrift vises ikke i den lagrede filen

Den latin_font egenskapen angir den latinske skrifttypefamilien. Hvis den ikke er satt, brukes presentasjonstemaets skrifttype. Tilpassede skrifttyper må være innebygd eller tilgjengelige på visningsmaskinen.


Ofte stilte spørsmål

Hvordan endrer jeg skriftfamilien?

Angi portion_format.latin_font:

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

FontData aksepterer fontfamilienavnet som en streng.

Hvordan setter jeg avsnittsjustering?

Bruk paragraph_format.alignment:

from aspose.slides_foss import TextAlignment

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

Støttede verdier: LEFT, CENTER, RIGHT, JUSTIFY.

Hvordan setter jeg linjeavstand?

Bruk paragraph_format.space_before (poeng før avsnitt) eller paragraph_format.space_after (poeng etter avsnitt):

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

Se også

 Norsk