在一段文字中,我们可以通过设置字体格式起到强调、突出的效果。常见的,以字体加粗、倾斜、设置字体下划线、上下标、字体颜色等形式为主。下面,将通过使用Spire.Presentation来实现以上字体格式。
C#
//加载测试文档
Presentation ppt = new Presentation("test.pptx", FileFormat.Pptx2010);
//获取首个幻灯片中第一个Shape的文本,并保存为新的字符串变量
IAutoShape shape = ppt.Slides[0].Shapes[1] as IAutoShape;
string originalText = shape.TextFrame.Text;
//用指定的文本字符来拆分字符串,并将子字符串返回到字符串数组
string[] splitArray = originalText.Split(new string[] { "加粗", "倾斜", "绿色", "下划线", "-1", "放大", "缩小"}, StringSplitOptions.None);
//将shape中的段落移除
TextParagraph tp = shape.TextFrame.TextRange.Paragraph;
tp.TextRanges.Clear();
//获取第1个数组元素
TextRange tr = new TextRange(splitArray[0]);
tp.TextRanges.Append(tr);//将字符串“加粗”前面的文本追加到段落(以下代码同理)
//设置局部变量“加粗”的文本效果,并添加到段落
tr = new TextRange("加粗");
tr.IsBold = TriState.True;
tp.TextRanges.Append(tr);
//获取第2个数组元素
tr = new TextRange(splitArray[1]);
tp.TextRanges.Append(tr);
//设置局部变量“倾斜”的文本效果,并添加到段落
tr = new TextRange("倾斜");
tr.IsItalic = TriState.True;
tp.TextRanges.Append(tr);
//获取第3个数组元素
tr = new TextRange(splitArray[2]);
tp.TextRanges.Append(tr);
//设置文本颜色为绿色,并添加到段落
tr = new TextRange("绿色");
tr.Fill.FillType = Spire.Presentation.Drawing.FillFormatType.Solid;
tr.Format.Fill.SolidColor.Color = Color.Green;
tp.TextRanges.Append(tr);
//获取第4个数组元素
tr = new TextRange(splitArray[3]);
tp.TextRanges.Append(tr);
//设置文本下划线效果,并添加到段落
tr = new TextRange("下划线");
tr.TextUnderlineType = TextUnderlineType.Single;
tp.TextRanges.Append(tr);
//获取第5个数组元素
tr = new TextRange(splitArray[4]);
tp.TextRanges.Append(tr);
//设置文本为上标(下标设置,将数值设置为负数即可)
tr = new TextRange("-1");
tr.ScriptDistance = 40;
tp.TextRanges.Append(tr);
//获取第6个数组元素
tr = new TextRange(splitArray[5]);
tp.TextRanges.Append(tr);
//设置文字放大效果
tr = new TextRange("放大");
tr.FontHeight = 35;
tp.TextRanges.Append(tr);
//获取第7个数组元素
tr = new TextRange(splitArray[6]);
tp.TextRanges.Append(tr);
//设置文字缩小效果
tr = new TextRange("缩小");
tr.FontHeight = 10;
tp.TextRanges.Append(tr);
//获取剩余的字符串内容,并追加到段落
tr = new TextRange(splitArray[7]);
tp.TextRanges.Append(tr);
//保存文档
ppt.SaveToFile("result.pptx", FileFormat.Pptx2010);
System.Diagnostics.Process.Start("result.pptx");
VB.NET
'加载测试文档 Dim ppt As New Presentation("test.pptx",FileFormat.Pptx2010) '获取首个幻灯片中第一个Shape的文本,并保存为新的字符串变量
Dim shape As IAutoShape = TryCast(ppt.Slides(0).Shapes(1), IAutoShape)
Dim originalText As String = shape.TextFrame.Text
'用指定的文本字符来拆分字符串,并将子字符串返回到字符串数组 Dim splitArray As String() = originalText.Split(New String(){"加粗","倾斜","绿色","下划线","-1","放大",_ "缩小"},StringSplitOptions.None) '将shape中的段落移除
Dim tp As TextParagraph = shape.TextFrame.TextRange.Paragraph
tp.TextRanges.Clear()
'获取第1个数组元素 Dim tr As New TextRange(splitArray(0)) tp.TextRanges.Append(tr) '将字符串“加粗”前面的文本追加到段落(以下代码同理)
'设置局部变量“加粗”的文本效果,并添加到段落 tr = New TextRange("加粗") tr.IsBold = TriState.[True] tp.TextRanges.Append(tr) '获取第2个数组元素
tr = New TextRange(splitArray(1))
tp.TextRanges.Append(tr)
'设置局部变量“倾斜”的文本效果,并添加到段落 tr = New TextRange("倾斜") tr.IsItalic = TriState.[True] tp.TextRanges.Append(tr) '获取第3个数组元素
tr = New TextRange(splitArray(2))
tp.TextRanges.Append(tr)
'设置文本颜色为绿色,并添加到段落 tr = New TextRange("绿色") tr.Fill.FillType = Spire.Presentation.Drawing.FillFormatType.Solid tr.Format.Fill.SolidColor.Color = Color.Green tp.TextRanges.Append(tr) '获取第4个数组元素
tr = New TextRange(splitArray(3))
tp.TextRanges.Append(tr)
'设置文本下划线效果,并添加到段落 tr = New TextRange("下划线") tr.TextUnderlineType = TextUnderlineType.[Single] tp.TextRanges.Append(tr) '获取第5个数组元素
tr = New TextRange(splitArray(4))
tp.TextRanges.Append(tr)
'设置文本为上标(下标设置,将数值设置为负数即可) tr = New TextRange("-1") tr.ScriptDistance = 40 tp.TextRanges.Append(tr) '获取第6个数组元素
tr = New TextRange(splitArray(5))
tp.TextRanges.Append(tr)
'设置文字放大效果 tr = New TextRange("放大") tr.FontHeight = 35 tp.TextRanges.Append(tr) '获取第7个数组元素
tr = New TextRange(splitArray(6))
tp.TextRanges.Append(tr)
'设置文字缩小效果 tr = New TextRange("缩小") tr.FontHeight = 10 tp.TextRanges.Append(tr) '获取剩余的字符串内容,并追加到段落
tr = New TextRange(splitArray(7))
tp.TextRanges.Append(tr)
'保存文档 ppt.SaveToFile("result.pptx",FileFormat.Pptx2010) System.Diagnostics.Process.Start("result.pptx")
字体设置效果对比
测试文档:
设置效果: