.NET에서 텍스트 서식 지정 방법
Aspose.Slides FOSS for .NET은 PortionFormat 클래스를 통해 세밀한 텍스트 서식을 제공합니다. Portion는 텍스트의 가장 작은 독립 단위이며, 단락 내의 단일 서식 실행에 매핑됩니다. 이 가이드는 프레젠테이션의 텍스트에 굵게, 기울임꼴, 글꼴 크기 및 색상 서식을 적용하는 방법을 보여줍니다.
단계별 가이드
1단계: 패키지 설치
dotnet add package Aspose.Slides.Foss2단계: 텍스트 프레임이 있는 도형 추가
텍스트를 포맷하기 전에, 도형은 TextFrame을 포함해야 합니다. shape.AddTextFrame()를 사용하여 하나를 만드세요.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Default text: will be formatted");
prs.Save("output.pptx", SaveFormat.Pptx);3단계: TextFrame에 액세스
shape.AddTextFrame()는 TextFrame 객체를 반환합니다. 또한 shape.TextFrame을 통해 나중에 검색할 수 있습니다.
var tf = shape.TextFrame; // if the frame already exists
var tf = shape.AddTextFrame(""); // creates a new frameTextFrame은 Paragraph 객체들의 목록(tf.Paragraphs)을 포함합니다. 각 Paragraph은 Portion 객체(paragraph.Portions)를 포함합니다.
4단계: 굵게 및 기울임꼴 서식 적용
PortionFormat.FontBold와 PortionFormat.FontItalic를 사용하십시오. 이러한 속성은 NullableBool.True, NullableBool.False, 또는 NullableBool.NotDefined (마스터에서 상속) 를 허용합니다.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Bold and italic text");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontBold = NullableBool.True;
fmt.FontItalic = NullableBool.True;
prs.Save("bold-italic.pptx", SaveFormat.Pptx);5단계: 글꼴 크기 및 색상 설정
크기(포인트)에는 PortionFormat.FontHeight를 설정하고 색상에는 FillFormat를 사용하십시오.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 150);
var tf = shape.AddTextFrame("Large corporate-blue heading");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32; // 32pt font
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);
prs.Save("colored-text.pptx", SaveFormat.Pptx);Color.FromArgb(alpha, red, green, blue)은 각 채널에 대해 0-255 값을 허용합니다.
단계 6: 하나의 문단에 여러 부분
단일 단락은 서로 다른 서식을 가진 여러 부분을 포함할 수 있습니다. 새 Portion를 단락의 Portions 컬렉션에 추가하십시오:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 600, 100);
var tf = shape.AddTextFrame(""); // start with empty frame
var paragraph = tf.Paragraphs[0];
// First portion: normal text
var portion1 = paragraph.Portions[0];
portion1.Text = "Normal text followed by ";
portion1.PortionFormat.FontHeight = 20;
// Second portion: bold red text
var portion2 = new Portion();
portion2.Text = "bold red text";
portion2.PortionFormat.FontHeight = 20;
portion2.PortionFormat.FontBold = NullableBool.True;
portion2.PortionFormat.FillFormat.FillType = FillType.Solid;
portion2.PortionFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);
paragraph.Portions.Add(portion2);
prs.Save("mixed-format.pptx", SaveFormat.Pptx);일반적인 문제 및 해결 방법
색상을 설정했는데도 텍스트가 검게 나타납니다
색상을 할당하기 전에 FillFormat.FillType = FillType.Solid가 설정되어 있는지 확인하십시오. 채우기 유형을 설정하지 않으면 색상 변경이 효과가 없을 수 있습니다.
NullableBool.True 대 true
PortionFormat.FontBold은 NullableBool.True을 기대하며, C# true이 아닙니다. C# true을 할당하면 타입이 호환되지 않아 컴파일되지 않습니다.
저장된 파일에 글꼴이 표시되지 않음
LatinFont 속성은 라틴 글꼴 패밀리를 설정합니다. 설정되지 않은 경우 프레젠테이션 테마 글꼴이 사용됩니다. 사용자 정의 글꼴은 임베드되거나 보기 머신에 있어야 합니다.
자주 묻는 질문
폰트 패밀리를 어떻게 변경하나요?
설정 PortionFormat.LatinFont:
fmt.LatinFont = new FontData("Arial");FontData는 폰트 패밀리 이름을 문자열로 받아들입니다.
단락 정렬을 어떻게 설정합니까?
ParagraphFormat.Alignment 사용:
tf.Paragraphs[0].ParagraphFormat.Alignment = TextAlignment.Center;지원되는 값: Left, Center, Right, Justify.
줄 간격을 어떻게 설정하나요?
ParagraphFormat.SpaceBefore (문단 앞에 점) 또는 ParagraphFormat.SpaceAfter (문단 뒤에 점)을 사용하십시오:
tf.Paragraphs[0].ParagraphFormat.SpaceBefore = 12; // 12pt before
tf.Paragraphs[0].ParagraphFormat.SpaceAfter = 6; // 6pt after