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

相关推荐
eybk2 天前
python将图片pdf文件转为透明文字的pdf文件
pdf
小新科研测评2 天前
2026 年 3 种 PDF 文献翻译方案横评:公式/表格/双栏排版保真度实测
人工智能·ai·pdf·自动翻译
学术 学术 Fun2 天前
PDF 转 draw.io:把 PDF 图表恢复成可编辑图形
pdf·流程图·drawio
开开心心就好2 天前
电子教鞭工具支持画框写字插图片功能齐全
android·开发语言·前端·javascript·人工智能·pdf·html
2601_949950633 天前
Word、PDF、Excel题目怎么快速整理?
pdf·word·excel
redfred3 天前
Stirling-PDF 使用教程:开源 PDF 工具箱 50+ 工具 PDF转Word/合并/压缩/OCR 桌面版 Docker 部署详解
pdf·开源·word
2501_930707783 天前
如何使用C#代码向 PDF 文档添加多种类型的注释
pdf
SamChan904 天前
Python+PyMuPDF提取PDF表格并翻译:表格结构检测与双语重建实战
windows·python·ai·pdf·wpf
E_ICEBLUE4 天前
Python 实现 Markdown 转 Word、PDF:从转换到页面设置
python·pdf·word·markdown·格式转换
zhonyu鱼4 天前
Drawpile:多人实时协作绘画,一起在同一块画布上画画
笔记·pdf·开源·开源软件