在一段文字中,我们可以通过设置字体格式起到强调、突出的效果。常见的,以字体加粗、倾斜、设置字体下划线、上下标、字体颜色等形式为主。下面,将通过使用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")
字体设置效果对比
测试文档:
设置效果: