使用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 文档添加图片水印。核心思路其实很简单:为每一页设置背景图片,并通过透明度控制实现水印效果。在此基础上,你还可以根据实际需求灵活调整水印的位置、大小和透明度,甚至扩展为平铺或局部水印。整体实现成本低、可控性强,非常适合用于文档保护、品牌展示以及自动化处理等场景。

相关推荐
SamChan9036 分钟前
WebSocket实现PDF翻译进度实时推送:Go后端+React前端的完整方案
前端·websocket·pdf·c#·react·机器翻译
森叶21 小时前
拆解 PDF 翻译引擎:表格纹丝不动、长语言自动缩放、图片文字 AI 重绘背后的工程
人工智能·pdf
AI创界者1 天前
MinerU v3.4.4 离线部署实战:PDF/PPT/图片一键转 Markdown,低至 4G 显存/纯 CPU 可用
pdf·powerpoint
cosinmz1 天前
图片转PDF:手机合同照片如何整理成规范PDF文件
pdf·pdf转换·图片转pdf·图片转pdf小程序
a1117761 天前
深入理解 AI Agent PDF(设计原理与工程实践 )
pdf
CCC65A8780D2C1 天前
PaddleOCR-VL-1.6图片PDF文档解析识别成文本工具,解压就能用,完全本地离线
pdf
桐桐桐1 天前
技术文档翻译实践:保留PDF表格与版式的几种方案
pdf·自动化
王莎莎-MinerU1 天前
别让 Agent 重读 PDF:文档解析要交付可缓存资产
网络·数据库·人工智能·驱动开发·缓存·pdf·ocr
SamChan902 天前
在Web应用中集成PDF多语言翻译功能:PDFTranslator API实战指南
前端·python·ai·pdf·yapi·机器翻译
CCC65A8780D2C2 天前
OvisOCR2图片PDF识别精准识别成文字工具
pdf