- A+
所属分类:.NET技术
在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即幻灯片中只有一个文本水印;也可以添加多行(平铺)文本水印效果,即幻灯片中以一定方式平铺排列多个文本水印效果。本文主要以C#程序代码为例介绍第二种水印添加方法,另附VB.NET代码供参考。
程序环境
- 需引入以下程序集文件,如图:
其中,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水印的方法可参考以下相关文章:
- 添加单一水印效果:C# 添加文本和图片水印到PPT
- 删除水印效果:C# 删除PPT中的水印
(本文完)
转载请注明出处!