Jak formátovat text v Python

Jak formátovat text v Python

Aspose.Slides FOSS for Python provides fine-grained text formatting through the PortionFormat třída. A Portion je nejmenší nezávislá jednotka textu; mapuje se na jeden formátovací běh v odstavci. Tento průvodce ukazuje, jak použít tučné, kurzívu, velikost písma a barevné formátování na text v prezentaci.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

pip install aspose-slides-foss

Krok 2: Přidejte tvar s textovým rámcem

Před formátováním textu musí tvar obsahovat TextFrame. Použijte shape.add_text_frame() k vytvoření jedné.

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)

Krok 3: Získejte přístup k TextFrame

shape.add_text_frame() vrací TextFrame objekt. Můžete jej také později získat pomocí shape.text_frame.

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

A TextFrame obsahuje seznam Paragraph objektů (tf.paragraphs). Každý Paragraph obsahuje Portion objektů (paragraph.portions).


Krok 4: Použijte formátování tučného a kurzívy

Použijte portion_format.font_bold a portion_format.font_italic. Tyto vlastnosti přijímají NullableBool.TRUE, NullableBool.FALSE, nebo NullableBool.NOT_DEFINED (zdědit z 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)

Krok 5: Nastavte velikost písma a barvu

Nastavit portion_format.font_height pro velikost (v bodech) a použijte fill_format pro barvu.

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) přijímá hodnoty 0–255 pro každý kanál.


Krok 6: Více částí v jednom odstavci

Jeden odstavec může obsahovat více částí s různým formátováním. Přidejte novou Portion do odstavce portions kolekci:

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)

Časté problémy a opravy

Text se zobrazuje černě i po nastavení barvy

Zajistěte fill_format.fill_type = FillType.SOLID je nastaveno před přiřazením barvy. Bez nastavení typu výplně může změna barvy nemít žádný efekt.

NullableBool.TRUE vs True

portion_format.font_bold očekává NullableBool.TRUE, nikoli Python True. Přiřazení Python True může vyvolat TypeError nebo tiše nic neudělá v závislosti na vazbě.

Písmo se v uloženém souboru neobjeví

Tento latin_font vlastnost nastavuje latinskou rodinu písma. Pokud není nastavena, použije se písmo motivu prezentace. Vlastní písma musí být vložena nebo dostupná na zobrazovacím počítači.


Často kladené otázky

Jak mohu změnit rodinu písma?

Nastavit portion_format.latin_font:

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

FontData přijímá název rodiny písma jako řetězec.

Jak nastavit zarovnání odstavce?

Použít paragraph_format.alignment:

from aspose.slides_foss import TextAlignment

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

Podporované hodnoty: LEFT, CENTER, RIGHT, JUSTIFY.

Jak nastavit řádkování?

Použít paragraph_format.space_before (tečky před odstavcem) nebo paragraph_format.space_after (tečky po odstavci):

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

Viz také

 Čeština