Python에서 텍스트를 서식 지정하는 방법
Aspose.Slides FOSS for Python provides fine-grained text formatting through the PortionFormat class. A Portion 텍스트의 가장 작은 독립 단위이며, 단락 내에서 단일 서식 실행에 매핑됩니다. 이 가이드는 프레젠테이션에서 텍스트에 굵게, 기울임꼴, 글꼴 크기 및 색상 서식을 적용하는 방법을 보여줍니다.
단계별 가이드
단계 1: 패키지 설치
pip install aspose-slides-foss단계 2: 텍스트 프레임이 있는 도형 추가
텍스트에 서식을 적용하기 전에, 도형에는 TextFrame. Use 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 frameA 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: 하나의 단락에 여러 Portion 사용
단일 단락은 서로 다른 서식이 적용된 여러 부분을 포함할 수 있습니다. 새 항목을 추가합니다 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 폰트 패밀리 이름을 문자열로 받아들입니다.
단락 정렬을 어떻게 설정하나요?
사용 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