Python에서 텍스트 서식 지정 방법

Python에서 텍스트 서식 지정 방법

Aspose.Slides FOSS for Python은 PortionFormat 클래스를 통해 세밀한 텍스트 서식을 제공합니다. 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

TextFrame 은(는) Paragraph 객체(tf.paragraphs) 목록을 포함합니다. 각 Paragraph 은(는) Portion 객체(paragraph.portions) 를 포함합니다.


4단계: 굵게 및 기울임꼴 서식 적용

portion_format.font_boldportion_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: 하나의 문단에 여러 부분

단일 단락은 서로 다른 서식을 가진 여러 부분을 포함할 수 있습니다. 새 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.TRUETrue

portion_format.font_boldNullableBool.TRUE을 기대하며, Python True은 기대하지 않습니다. Python 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

관련 항목

 한국어