איך לעצב טקסט ב‑Python

איך לעצב טקסט ב‑Python

Aspose.Slides FOSS for Python provides fine-grained text formatting through the PortionFormat מחלקה. A Portion הוא היחידה העצמאית הקטנה ביותר של טקסט; הוא ממופה לרצף עיצוב יחיד בתוך פסקה. מדריך זה מראה כיצד להחיל עיצוב מודגש, נטוי, גודל גופן וצבע על טקסט במצגת.

מדריך שלב אחר שלב

שלב 1: התקנת החבילה

pip install aspose-slides-foss

שלב 2: הוסף צורה עם מסגרת טקסט

לפני עיצוב טקסט, צורה חייבת להכיל TextFrame. השתמש shape.add_text_frame() ליצור אחת.

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)

שלב 3: גש ל-TextFrame

shape.add_text_frame() מחזיר את TextFrame אובייקט. אתה גם יכול לאחזר אותו מאוחר יותר דרך shape.text_frame.

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

A TextFrame מכיל רשימה של Paragraph אובייקטים (tf.paragraphs). כל Paragraph מכיל Portion אובייקטים (paragraph.portions).


שלב 4: החל עיצוב מודגש ונטוי

השתמש portion_format.font_bold ו portion_format.font_italic. מאפיינים אלה מקבלים NullableBool.TRUE, NullableBool.FALSE, או NullableBool.NOT_DEFINED (ירש מהמאסטר).

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)

שלב 5: הגדר גודל גופן וצבע

הגדר portion_format.font_height לגודל (בנקודות) ולשימוש fill_format לצבע.

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) מקבל ערכים 0–255 לכל ערוץ.


שלב 6: מספר חלקים (Portions) בפסקה אחת

פסקה בודדת יכולה להכיל מספר חלקים עם עיצוב שונה. הוסף חדש Portion לפסקה portions אוסף:

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)

בעיות נפוצות ותיקונים

הטקסט מופיע שחור גם אחרי שהוגדר הצבע

ודא fill_format.fill_type = FillType.SOLID מוגדר לפני הקצאת הצבע. ללא הגדרת סוג המילוי, שינוי הצבע עשוי שלא להיות בעל השפעה.

NullableBool.TRUE vs True

portion_format.font_bold מצפה NullableBool.TRUE, ולא את Python True. הקצאת Python True עשוי לגרום ל TypeError או לשתוק וללא פעולה בהתאם לקישור.

הגופן אינו מופיע בקובץ השמור

ה latin_font המאפיין מגדיר את משפחת הגופנים הלטינית. אם לא מוגדר, נעשה שימוש בגופן של ערכת הנושא של המצגת. גופנים מותאמים אישית חייבים להיות משובצים או זמינים במחשב הצופה.


שאלות נפוצות

איך אני משנה את משפחת הגופנים?

הגדר portion_format.latin_font:

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

FontData מקבל את font family name כמחרוזת.

איך אני מגדיר יישור פסקה?

השתמש paragraph_format.alignment:

from aspose.slides_foss import TextAlignment

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

ערכים נתמכים: LEFT, CENTER, RIGHT, JUSTIFY.

איך אני מגדיר ריווח שורות?

השתמש paragraph_format.space_before (נקודות לפני פסקה) או paragraph_format.space_after (נקודות אחרי פסקה):

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

ראה גם

 עברית