在 PowerPoint 演示文稿中插入文本水印是保护版权并确保文档内容真实性的有效方式。Spire.Presentation for .NET 可帮助开发者通过简单的代码添加水印到 PowerPoint 幻灯片中,并且支持批量处理,允许精确控制水印的位置和外观,便于集成到更大的 .NET 应用程序中。本文将演示如何使用 Spire.Presentation for .NET 库通过 C# 代码插入文字水印到 PowerPoint 演示文稿。
安装 Spire.Presentation for .NET
首先,您需要添加 Spire.Presentation for .NET 包中包含的 DLL 文件作为.NET项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.Presentation
在 PowerPoint 幻灯片中插入单一文字水印
借助 Spire.Presentation for .NET,开发者可以通过在每一个幻灯片上创建一个锁定的透明文本框,并以自定义样式插入水印文字到其中,从而实现在 PowerPoint 演示文稿中添加单一文本水印。详细步骤如下:
- 创建 Presentation 类的实例,并使用 Presentation.LoadFromFile() 方法加载 PowerPoint 文件。
- 定义水印文本,创建 Font 对象,并计算文本的大小。
- 通过 Presentation.SlideSize.Size 属性获取演示文稿中幻灯片的大小。
- 基于文本大小和幻灯片大小创建 RectangleF 对象。
- 遍历演示文稿中的幻灯片,在每张幻灯片上执行以下操作:
- 使用 ISlide.Shapes.AppendShape() 方法在指定位置创建 IAutoShape 对象。
- 使用 IAutoShape 类的属性设置形状的样式。
- 通过 IAutoShape.TextFrame.Text 属性将水印文本添加到形状中。
- 使用 IAutoShape.TextFrame.TextRange 属性将水印文本获取为 TextRange 对象。
- 使用 TextRange 类的属性设置水印文本的格式。
- 使用 Presentation.SaveToFile() 方法保存演示文稿。
- C#
using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Drawing;
namespace SingleTextWatermarkPowerPoint
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Presentation 实例
Presentation presentation = new Presentation();
// 加载一个 PowerPoint 文件
presentation.LoadFromFile("Sample.pptx");
// 定义水印文本并为其创建字体
string text = "水印文字示例";
// 创建字体对象
Font font = new Font("HarmonyOS Sans SC", 50);
// 测量水印文本的尺寸
Graphics graphics = Graphics.FromImage(new Bitmap(1, 1));
SizeF size = graphics.MeasureString(text, font);
// 获取幻灯片尺寸
SizeF slideSize = presentation.SlideSize.Size;
// 基于文本尺寸和页面尺寸创建矩形
RectangleF rect = new RectangleF((slideSize.Width - size.Width) / 2, (slideSize.Height - size.Height) / 2, size.Width, size.Height);
// 遍历演示文稿中的幻灯片
foreach (ISlide slide in presentation.Slides)
{
// 在每张幻灯片上创建一个水印形状
IAutoShape watermark = slide.Shapes.AppendShape(ShapeType.Rectangle, rect);
// 设置水印的样式
watermark.Fill.FillType = FillFormatType.None;
watermark.ShapeStyle.LineColor.Color = Color.Empty;
watermark.Rotation = -45;
watermark.Locking.SelectionProtection = true;
watermark.Line.FillType = FillFormatType.None;
// 将水印文本添加到形状中
watermark.TextFrame.Text = text;
// 设置水印文本的样式
TextRange textRange = watermark.TextFrame.TextRange;
textRange.Fill.FillType = FillFormatType.Solid;
textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink);
textRange.FontHeight = 50;
}
// 保存演示文稿
presentation.SaveToFile("output/PowerPoint单一文字水印.pptx", FileFormat.Auto);
presentation.Dispose();
}
}
}
在 PowerPoint 幻灯片中插入重复文字水印
开发者还可以在幻灯片上以指定的间隔插入多个相同的文本水印,实现重复水印的效果。详细步骤如下:
- 创建 Presentation 类的实例,并使用 Presentation.LoadFromFile() 方法加载 PowerPoint 文件。
- 定义水印文本,创建 Font 对象,并计算文本的大小。
- 通过 Presentation.SlideSize.Size 属性获取演示文稿中幻灯片的大小。
- 遍历演示文稿中的幻灯片,执行以下操作:
- 定义起始位置和间隔。
- 添加水印形状和文本,并设置其格式。
- 完成一行水印添加后,将水平位置移动到下一个间隔。
- 完成每行水印添加后,将垂直位置移动到下一行。
- 使用 Presentation.SaveToFile() 方法保存演示文稿。
- C#
using Spire.Presentation.Drawing;
using Spire.Presentation;
using System.Drawing;
namespace RepeatedTextWatermarkPowerPoint
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Presentation 实例
Presentation presentation = new Presentation();
// 加载一个 PowerPoint 文件
presentation.LoadFromFile("Sample.pptx");
// 定义水印文本并为其创建字体
string text = "水印文字示例";
// 创建字体对象
Font font = new Font("HarmonyOS Sans SC", 20);
// 测量水印文本的尺寸
Graphics graphics = Graphics.FromImage(new Bitmap(1, 1));
SizeF size = graphics.MeasureString(text, font);
// 获取幻灯片尺寸
SizeF slideSize = presentation.SlideSize.Size;
// 遍历演示文稿中的幻灯片
foreach (ISlide slide in presentation.Slides)
{
float x = 30;
float y = 80;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
// 创建一个矩形
RectangleF rect = new RectangleF(x, y, size.Width, size.Height);
IAutoShape watermark = slide.Shapes.AppendShape(ShapeType.Rectangle, rect);
// 设置水印的样式
watermark.Fill.FillType = FillFormatType.None;
watermark.ShapeStyle.LineColor.Color = Color.Empty;
watermark.Rotation = -45;
watermark.Locking.SelectionProtection = true;
watermark.Line.FillType = FillFormatType.None;
// 将水印文本添加到形状中
watermark.TextFrame.Text = text;
// 设置水印文本的样式
TextRange textRange = watermark.TextFrame.TextRange;
textRange.Fill.FillType = FillFormatType.Solid;
textRange.Fill.SolidColor.Color = Color.FromArgb(120, Color.HotPink);
textRange.FontHeight = 20;
x += ((slideSize.Width - 60) / 3 + size.Width / 2);
}
x = 30;
y += ((slideSize.Height - 160) / 3 + size.Height / 2);
}
}
// 保存演示文稿
presentation.SaveToFile("output/PowerPoint重复文字水印.pptx", FileFormat.Auto);
presentation.Dispose();
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。