چگونه متن را در پایتون قالب‌بندی کنیم

چگونه متن را در پایتون قالب‌بندی کنیم

Aspose.Slides FOSS برای Python قابلیت قالب‌بندی دقیق متن را از طریق کلاس PortionFormat فراهم می‌کند. یک Portion کوچک‌ترین واحد مستقل متن است؛ این واحد به یک اجرای قالب‌بندی منفرد درون یک پاراگراف نگاشت می‌شود. این راهنما نشان می‌دهد چگونه قالب‌بندی‌های بولد، ایتالیک، اندازه قلم و رنگ را بر روی متن در یک ارائه اعمال کنید.

راهنمای گام به گام

مرحله 1: نصب بسته

pip install aspose-slides-foss

مرحله ۲: افزودن یک شکل با قاب متن

قبل از قالب‌بندی متن، یک شکل باید شامل 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)

مرحله ۳: دسترسی به 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

یک TextFrame شامل فهرستی از اشیاء Paragraph (tf.paragraphs) است. هر Paragraph شامل اشیاء Portion (paragraph.portions) است.


مرحله ۴: اعمال قالب‌بندی بولد و ایتالیک

از 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)

مرحله ۵: تنظیم اندازه و رنگ قلم

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) مقادیر ۰ تا ۲۵۵ را برای هر کانال می‌پذیرد.


مرحله 6: چندین بخش در یک پاراگراف

یک پاراگراف می‌تواند شامل چندین بخش با قالب‌بندی‌های مختلف باشد. یک 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 در مقابل True

portion_format.font_bold انتظار دارد NullableBool.TRUE، نه True پایتون. اختصاص دادن True پایتون ممکن است یک TypeError ایجاد کند یا بسته به بایندینگ به‌صورت ساکتانه کاری انجام ندهد.

فونت در فایل ذخیره‌شده ظاهر نمی‌شود

ویژگی latin_font خانوادهٔ قلم لاتین را تنظیم می‌کند. اگر تنظیم نشود، قلم تم ارائه استفاده می‌شود. قلم‌های سفارشی باید جاسازی شوند یا در دستگاه مشاهده‌کننده موجود باشند.


سوالات متداول

چگونه خانواده قلم را تغییر دهم؟

تنظیم portion_format.latin_font:

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

FontData نام خانواده قلم را به عنوان یک رشته می‌پذیرد.

چگونه تراز پاراگراف را تنظیم کنم؟

از 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

موارد مرتبط

 فارسی