C# 在PPT中添加多行(平铺)水印效果
在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即幻灯片中只有一个文本水印;也可以添加多行(平铺)文本水印效果,即幻灯片中以一定方式平铺排列多个文本水印效果。本文主要以C#程序代码为例介绍第二种水印添加方法,另附VB.NET代码供参考。
程序环境
l 需引入以下程序集文件,如图:

其中,Spire.Presentation.dll程序集,需下载安装至本地(也可以通过Nuget下载)。
|.NET Framework 4.8
详细代码
【C#】
using Spire.Presentation;
using Spire.Presentation.Drawing;
using System;
using System.Drawing;
using System.Windows.Forms;
namespace TextWatermark2
{
class Program
{
static void Main(string[] args)
{
//加载PPT文档
Presentation ppt = new Presentation();
ppt.LoadFromFile(\"test.pptx\");
//获取需要添加的水印的幻灯片(第一张幻灯片)
ISlide slide = ppt.Slides[0];
//创建水印文本
Font font = new Font(\"宋体\", 20);
String watermarkText = \"内部资料\";
SizeF size = TextRenderer.MeasureText(watermarkText, font);
//指定水印添加的起始坐标位置
float x = 50;
float y = 80;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
//绘制文本,设置文本格式
RectangleF rect = new RectangleF(x, y, size.Width, size.Height);
IAutoShape shape = slide.Shapes.AppendShape(Spire.Presentation.ShapeType.Rectangle, rect);
shape.Fill.FillType = FillFormatType.None;
shape.ShapeStyle.LineColor.Color = Color.White;
shape.Rotation = -45;
shape.Locking.SelectionProtection = true;
shape.Line.FillType = FillFormatType.None;
shape.TextFrame.Text = watermarkText;
TextRange textRange = shape.TextFrame.TextRange;
textRange.Fill.FillType = FillFormatType.Solid;
textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink);
textRange.EastAsianFont = new TextFont(font.Name);
textRange.FontHeight = font.Size;
x += (100 + size.Width);
}
x = 30;
y += (100 + size.Height);
}
//保存文档
ppt.SaveToFile(\"TextWatermark.pptx\", FileFormat.Pptx2013);
System.Diagnostics.Process.Start(\"TextWatermark.pptx\");
}
}
}
【VB.NET】
Imports Spire.Presentation
Imports Spire.Presentation.Drawing
Imports System.Drawing
Imports System.Windows.Forms
Namespace TextWatermark2
Class Program
Private Shared Sub Main(args As String())
\'加载PPT文档
Dim ppt As New Presentation()
ppt.LoadFromFile(\"test.pptx\")
\'获取需要添加的水印的幻灯片(第一张幻灯片)
Dim slide As ISlide = ppt.Slides(0)
\'创建水印文本
Dim font As New Font(\"宋体\", 20)
Dim watermarkText As [String] = \"内部资料\"
Dim size As SizeF = TextRenderer.MeasureText(watermarkText, font)
\'指定水印添加的起始坐标位置
Dim x As Single = 50
Dim y As Single = 80
For i As Integer = 0 To 3
For j As Integer = 0 To 3
\'绘制文本,设置文本格式
Dim rect As New RectangleF(x, y, size.Width, size.Height)
Dim shape As IAutoShape = slide.Shapes.AppendShape(Spire.Presentation.ShapeType.Rectangle, rect)
shape.Fill.FillType = FillFormatType.None
shape.ShapeStyle.LineColor.Color = Color.White
shape.Rotation = -45
shape.Locking.SelectionProtection = True
shape.Line.FillType = FillFormatType.None
shape.TextFrame.Text = watermarkText
Dim textRange As TextRange = shape.TextFrame.TextRange
textRange.Fill.FillType = FillFormatType.Solid
textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink)
textRange.EastAsianFont = New TextFont(font.Name)
textRange.FontHeight = font.Size
x += (100 + size.Width)
Next
x = 30
y += (100 + size.Height)
Next
\'保存文档
ppt.SaveToFile(\"TextWatermark.pptx\", FileFormat.Pptx2013)
System.Diagnostics.Process.Start(\"TextWatermark.pptx\")
End Sub
End Class
End Namespace
完成代码后,执行程序,生成结果文档。在结果文档中可查看水印添加效果,如下图:

注:以上代码中的文件路径为VS项目文件夹路径,如本次测试环境中为C:\\Users\\Administrator\\Documents\\Visual Studio 2013\\Projects\\InsertWatermark_PPT\\TextWatermark2\\bin\\Debug,这里的文件路径可自行定义。
(本文完)
转载请注明出处!!



