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-fossKrok 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 frameA 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.CENTERPodporované 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