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-fossSteg 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 frameEn 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.CENTERStø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