Jak formátovat text v Pythonu
Aspose.Slides FOSS for Python poskytuje jemné formátování textu pomocí třídy PortionFormat. Portion je nejmenší nezávislá jednotka textu; mapuje se na jediný formátovací běh v odstavci. Tento průvodce ukazuje, jak aplikovat tučné, kurzívou, 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řidat tvar s textovým rámečkem
Před formátováním textu musí tvar obsahovat TextFrame. Použijte shape.add_text_frame() k vytvoření jednoho.
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: Přístup k TextFrame
shape.add_text_frame() vrací objekt TextFrame. 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 frameTextFrame obsahuje seznam Paragraph objektů (tf.paragraphs). Každý Paragraph obsahuje Portion objektů (paragraph.portions).
Krok 4: Použít tučné a kurzívní formátování
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
Nastavte 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 nový Portion do kolekce portions odstavce:
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)Běžné problémy a opravy
Text se zobrazuje černě i po nastavení barvy
Ujistěte se, že je fill_format.fill_type = FillType.SOLID 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ělat v závislosti na vazbě.
Písmo se v uloženém souboru neobjevuje
Vlastnost latin_font nastavuje latinskou rodinu fontů. Pokud není nastavena, použije se písmo motivu prezentace. Vlastní fonty musí být vloženy nebo dostupné na zobrazovacím počítači.
Často kladené otázky
Jak změním 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žijte 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žijte paragraph_format.space_before (body před odstavcem) nebo paragraph_format.space_after (body po odstavci):
tf.paragraphs[0].paragraph_format.space_before = 12 # 12pt before
tf.paragraphs[0].paragraph_format.space_after = 6 # 6pt after