C#操作Word中水印添加和移除的完整指南

 更新时间:2026年05月25日 11:49:11   作者:秋天的落叶铺满小路  
在软件系统开发过程中,文档处理功能往往是企业级应用的重要组成部分,本文将详细介绍如何利用 Spire.Doc for .NET 组件,通过 C# 代码实现 Word 文档中文本水印的添加、图片水印的添加以及已有水印的移除操作,有需要的小伙伴可以了解下

在软件系统开发过程中,文档处理功能往往是企业级应用的重要组成部分。Word 文档作为最主流的办公文档格式之一,其内容保护与状态标识需求频繁出现。水印作为一种不干扰正文阅读但又能够清晰传达文档属性(如机密级别、版权归属、草稿状态)的视觉元素,在文档管理中扮演着关键角色。

本文将详细介绍如何利用 Spire.Doc for .NET 组件,通过 C# 代码实现 Word 文档中文本水印的添加、图片水印的添加以及已有水印的移除操作。

一、Spire.Doc for .NET 组件概述

Spire.Doc for .NET 是一款专业的 Word 文档操作组件,它允许开发者在无需安装 Microsoft Office 的情况下,直接通过代码创建、读取、修改和转换 Word 文档。该组件提供了完整的水印处理能力,支持两种主流水印类型:

水印类型适用场景核心类
文字水印机密标识、草稿状态、版权声明TextWatermark
图片水印公司 Logo、签名、图形化标识PictureWatermark

与通过操作页眉页脚或插入形状来模拟水印的复杂方案不同,Spire.Doc 内置了专门的水印对象模型,使得水印的添加与管理变得简洁而规范。

环境配置

在开始编码之前,需要通过 NuGet 包管理器在项目中安装 Spire.Doc。在 Visual Studio 的“包管理器控制台”中执行以下命令:

Install-Package Spire.Doc

安装完成后,需要在代码文件中引入以下命名空间:

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;  // 用于颜色和图片操作

二、添加文本水印

文本水印是最基础也是最常用的水印形式。所谓文本水印,实质上是将一串文字以半透明或指定颜色的方式渲染在文档每一页的背景图层上,文字通常采用较大字号并呈斜向或水平排列,以此在视觉上区分于正文内容。

核心属性说明

TextWatermark 类提供了以下可配置属性:

属性类型说明
Textstring水印显示的文字内容,如“机密”、“DO NOT COPY”
FontSizeint水印文字的字号大小,通常设置为 40-80
ColorColor水印文字颜色,建议选择柔和或半透明色调
LayoutWatermarkLayout排列方向:Diagonal(斜向)或 Horizontal(水平)

代码实现

using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;

namespace InsertTextWatermark
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Document 对象实例
            Document document = new Document();

            // 从磁盘加载 Word 文档
            document.LoadFromFile("input.docx");

            // 插入文本水印
            InsertTextWatermark(document);

            // 保存文档
            document.SaveToFile("TextWatermark.docx", FileFormat.Docx);
        }

        private static void InsertTextWatermark(Document document)
        {
            TextWatermark txtWatermark = new TextWatermark();
            txtWatermark.Text = "请 勿 复 制";           // 水印文字内容
            txtWatermark.FontSize = 50;                   // 字体大小
            txtWatermark.Color = Color.Blue;              // 文字颜色
            txtWatermark.Layout = WatermarkLayout.Diagonal; // 斜向布局
            document.Watermark = txtWatermark;
        }
    }
}

关键点说明

  • 水印是与整个文档对象关联的,而非与某个特定页面或章节关联。这意味着添加一次水印后,文档的所有页面都会自动应用该水印。
  • 保存时需要明确指定格式为 FileFormat.Docx,以确保水印信息被正确写入 Word 文件结构中。
  • 如果希望水印以水平居中方式显示,可将 Layout 属性设置为 WatermarkLayout.Horizontal

三、添加图片水印

与文本水印相比,图片水印适用于更丰富的场景:

  • 企业将公司 Logo 作为水印添加至内部文档
  • 设计团队在设计稿上叠加版权标识图片
  • 将签名图片作为文档审批水印

核心属性说明

PictureWatermark 类提供了以下可配置属性:

属性类型说明
PictureImage要显示的图片对象,支持 PNG、JPG、BMP、GIF 等格式
Scalingint图片相对于原始尺寸的缩放百分比,如 200 表示放大至 200%
IsWashoutbooltrue 为冲蚀效果(淡化),false 保持原始色彩

代码实现

using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;

namespace InsertImageWatermark
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 Document 对象实例
            Document document = new Document();

            // 加载 Word 文档
            document.LoadFromFile("Input.docx");

            // 插入图片水印
            InsertImageWatermark(document);

            // 保存文档
            document.SaveToFile("InsertImageWatermark.docx", FileFormat.Docx);        
        }

        private static void InsertImageWatermark(Document document)
        {
            PictureWatermark picture = new PictureWatermark();
            picture.Picture = Image.FromFile("watermark.png");  // 加载图片文件
            picture.Scaling = 200;                               // 缩放比例(%)
            picture.IsWashout = false;                           // 是否褪色效果
            document.Watermark = picture;
        }
    }
}

图片水印的两种视觉效果

设置方式IsWashout = trueIsWashout = false
视觉效果图片淡化、半透明,类似背景水印图片保持原始色彩饱和度
适用场景背景装饰,不干扰正文阅读清晰展示 Logo 或签名细节
典型用途一般文档的版权标识正式合同、审批文件

四、移除水印

文档的生命周期往往经历了多个阶段,水印的需求也并非永久存在。例如,一份处于审核阶段的文档可能需要醒目的“机密”水印,但一旦审核完成并正式发布,水印可能成为冗余元素而需要清除。

设计原理

Spire.Doc 中移除水印的设计非常直接:Document.Watermark 属性的本质是一个对象引用。当它指向某个 TextWatermark 或 PictureWatermark 实例时,表示文档当前启用了水印;而将该引用设为空引用后,水印即从文档中解除关联。

代码实现

using Spire.Doc;
namespace RemoveWatermark
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 Document 实例
            Document doc = new Document();
            // 加载包含水印的 Word 文档
            doc.LoadFromFile("Input.docx");
            // 移除文档中的水印
            doc.Watermark = null;
            // 保存结果文档
            doc.SaveToFile("RemoveWatermark.docx", FileFormat.Docx2013);
        }
    }
}

注意事项

这种移除方式针对的是通过 Spire.Doc 添加的标准水印。如果文档中的“水印”是通过其他非标准方式实现的(例如在页眉中插入一个半透明形状,或直接嵌入背景图片),则无法通过此方法处理,需要采用其他的文档内容移除策略。

五、总结

通过 Spire.Doc for .NET,开发者可以用简洁且规范的 C# 代码完成 Word 文档水印的添加与移除工作。本文涉及的核心操作总结如下:

操作核心代码关键类
添加文本水印document.Watermark = new TextWatermark()TextWatermark
添加图片水印document.Watermark = new PictureWatermark()PictureWatermark
移除水印document.Watermark = null-

适用场景建议

  • 文本水印 :适合需要动态生成水印文字的场景,如根据用户权限显示不同级别的保密标识
  • 图片水印 :适合品牌标准化场景,如企业统一使用 Logo 作为文档背景
  • 移除水印 :适合文档流转场景,如内部审核阶段带水印,对外发布前去除

这套方案不依赖 Office 软件环境,适合部署于服务器端应用或后台服务中,具备良好的稳定性和可扩展性。

以上就是C#操作Word中水印添加和移除的完整指南的详细内容,更多关于C#操作Word水印的资料请关注脚本之家其它相关文章!

相关文章

最新评论