使用C#代码在PDF文件中添加图片水印

图片水印通常是出现在电子文档背景中的标识(如 Logo 或图案),用于表明内容的版权归属。为 PDF 文档添加图片水印,可以在一定程度上防止数据被未经授权地使用或修改。

本文将介绍如何在 C# 和 VB.NET 中,通过编程的方式为 PDF 添加图片水印。

环境准备

在开始之前,你需要在 .NET 项目中引入一个支持 PDF 操作的类库(以 DLL 形式提供)。

常见的引入方式有两种:

  • 下载对应的库文件(DLL)并手动添加到项目引用中
  • 通过 NuGet 包管理器进行安装

完成以上配置后,即可开始进行 PDF 水印的相关开发。

cs 复制代码
PM> Install-Package Spire.PDF

为 PDF 添加图片水印

下面介绍为 PDF 文档添加图片水印的基本实现步骤:

  1. 创建 PDF 文档对象,并加载需要处理的 PDF 文件
  2. 读取作为水印的图片文件
  3. 遍历文档中的每一页
  4. 在当前页面上设置图片为背景(水印),并调整其位置和大小
  5. 将处理后的文档保存为新的 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 文档添加图片水印。核心思路其实很简单:为每一页设置背景图片,并通过透明度控制实现水印效果。在此基础上,你还可以根据实际需求灵活调整水印的位置、大小和透明度,甚至扩展为平铺或局部水印。整体实现成本低、可控性强,非常适合用于文档保护、品牌展示以及自动化处理等场景。

相关推荐
鲲穹AI种草14 小时前
PDF 编辑工具怎么选,多款工具实际使用情况整理
pdf·pdf 编辑工具
阿松爱学习15 小时前
【Unity开发】Aspose.PDF的使用
unity·pdf·c#
andrsted15 小时前
练题簿在线免费刷题:Word、PDF 导题与预览补全,把现成资料变成可练习题库
微信小程序·小程序·pdf·word·学习方法·刷题
AI行业应用研究15 小时前
会务信息载体的演进:纸质、PDF 与结构化数据源的分发成本与版本一致性
大数据·人工智能·安全·小程序·架构·pdf
king135987455016 小时前
EmbeddingGemma 2 270M 实测:Mac CPU、PDF/Word、256d 与 FTS5
macos·pdf·word
2501_9307077819 小时前
使用C#代码从 PDF 文档中提取附件
pdf
程序人生8881 天前
PDF 转 Word 版式错乱、表格丢失?DocConverter Web 格式互转引擎的保真实践
前端·人工智能·opencv·机器学习·pdf·word
ComPDFKit2 天前
用 ComPDF DocSlight 提取 PDF 表格:三种样本实测与 Python 接入
开发语言·python·pdf·pdf表格提取
yiyideda2 天前
保单OCR工程实践:PDF/扫描件/纸质拍照三种输入下的字段结构化方案
计算机视觉·pdf·ocr·车险保单识别·保单ocr识别
Lhan.zzZ2 天前
Qt/QML:业务记录单展示、签名确认与 PDF 导出开发
c++·qt·pdf