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

相关推荐
阳光Cherry梦1 小时前
下载利用pdfjs提供的viewer.html展示pdf文件
pdf
qq_427539831 小时前
iframe 嵌入预览 PDF ,禁用右键菜单、打印下载按钮不展示
前端·javascript·vue.js·pdf
asdzx671 小时前
告别手动校对:使用 Python 对比两个 PDF 文档的差异
开发语言·python·pdf
jiangbqing19 小时前
职场动物进化手册(升级版).pdf 免费分享
pdf·职场动物净化·职场必读潜规则
合合技术团队20 小时前
智能合同审查搭建教程:低质量PDF怎么处理?先解析清洗,再分路审阅(附GitHub项目地址)
pdf·prompt·github·textin
南风微微吹1 天前
【管综】考研199管理类综合联考历年真题及答案解析PDF电子版(2009-2026年)
考研·pdf
优化控制仿真模型1 天前
【英一】考研英语一历年真题及答案解析PDF电子版(1980-2026年)
经验分享·pdf
其实秋天的枫1 天前
【英一】考研英语一历年真题及答案解析PDF电子版(1980-2026年)
经验分享·pdf
要不枉此行1 天前
【Python 实战】一键爬取 HTML 文档并合并为完整 PDF
python·pdf·html