图片水印通常是出现在电子文档背景中的标识(如 Logo 或图案),用于表明内容的版权归属。为 PDF 文档添加图片水印,可以在一定程度上防止数据被未经授权地使用或修改。
本文将介绍如何在 C# 和 VB.NET 中,通过编程的方式为 PDF 添加图片水印。
环境准备
在开始之前,你需要在 .NET 项目中引入一个支持 PDF 操作的类库(以 DLL 形式提供)。
常见的引入方式有两种:
- 下载对应的库文件(DLL)并手动添加到项目引用中
- 通过 NuGet 包管理器进行安装
完成以上配置后,即可开始进行 PDF 水印的相关开发。
cs
PM> Install-Package Spire.PDF
为 PDF 添加图片水印
下面介绍为 PDF 文档添加图片水印的基本实现步骤:
- 创建 PDF 文档对象,并加载需要处理的 PDF 文件
- 读取作为水印的图片文件
- 遍历文档中的每一页
- 在当前页面上设置图片为背景(水印),并调整其位置和大小
- 将处理后的文档保存为新的 PDF 文件
示例代码如下:
cs
using Spire.Pdf;
using System.Drawing;
namespace AddImageWatermark
{
class Program
{
static void Main(string[] args)
{
// 创建 PdfDocument 对象
PdfDocument document = new PdfDocument();
// 加载示例 PDF 文档
document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// 加载图片(水印图片)
Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\logo.png");
// 获取图片的宽度和高度
int imgWidth = image.Width;
int imgHeight = image.Height;
// 遍历 PDF 的每一页
for (int i = 0; i < document.Pages.Count; i++)
{
// 获取当前页面的宽度和高度
float pageWidth = document.Pages[i].ActualSize.Width;
float pageHeight = document.Pages[i].ActualSize.Height;
// 设置背景透明度(0~1,值越小越透明)
document.Pages[i].BackgroudOpacity = 0.3f;
// 将图片设置为当前页面的背景(水印)
document.Pages[i].BackgroundImage = image;
// 计算并设置图片在页面中的居中位置
Rectangle rect = new Rectangle(
(int)(pageWidth - imgWidth) / 2,
(int)(pageHeight - imgHeight) / 2,
imgWidth,
imgHeight
);
document.Pages[i].BackgroundRegion = rect;
}
// 保存生成的 PDF 文件
document.SaveToFile("AddImageWatermark.pdf");
// 关闭文档
document.Close();
}
}
}
总结
通过以上方法,你可以在 C# 中轻松为 PDF 文档添加图片水印。核心思路其实很简单:为每一页设置背景图片,并通过透明度控制实现水印效果。在此基础上,你还可以根据实际需求灵活调整水印的位置、大小和透明度,甚至扩展为平铺或局部水印。整体实现成本低、可控性强,非常适合用于文档保护、品牌展示以及自动化处理等场景。