C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

  • A+
所属分类:.NET技术
摘要

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

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

程序环境

  • 需引入以下程序集文件,如图:

C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

 

 

其中,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

完成代码后,执行程序,生成结果文档。在结果文档中可查看水印添加效果,如下图:

C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果

 

其他关于C#操作PPT水印的方法可参考以下相关文章:

 

(本文完)

转载请注明出处!