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

相关推荐
开开心心就好4 小时前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
泡海椒1 天前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
泡海椒2 天前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf
泡海椒2 天前
jquick-pdf 表格行列尺寸控制实战:单元格合并的可行边界
java·开发语言·pdf
java_logo3 天前
Docker 部署 Gotenberg 完整教程:Compose 搭建文档转 PDF API
docker·pdf·chromium·libreoffice·文档转换·轩辕镜像·gotenberg
泡海椒3 天前
jquick-pdf 防止 PDF 内容分页断裂:keepTogether 属性妙用
java·开发语言·pdf
泡海椒3 天前
jquick-pdf 文本元素实战:段落、行内文本、制表符用法详解
java·开发语言·pdf
SamChan904 天前
Python 处理小语种 PDF 的编码坑:重音字符、连字与 (cid:xx) 乱码的解决方案
python·ai·pdf·机器翻译
微咣科技4 天前
平台化工业AI再突破|大捷智能携手岚图汽车,打造车身焊装智能设计行业标杆
pdf·音视频
我滴老baby4 天前
工业物联网数据库选型:把计算能力放回第一维度
数据库·人工智能·架构·pdf