通过C#实现给Word文档添加文字和图片水印

 更新时间:2025年10月24日 15:24:48   作者:咕白m625  
在日常办公中,给Word文档添加水印是个常见需求,下面小编就和大家讲讲如何使用 C# 结合免费库 Free Spire.Doc for .NET 给 Word 文档添加水印,包括文本水印和图片水印吧

在日常办公中,给Word文档添加水印是个常见需求——可能是为了标记"草稿"状态、标注"机密"等级,或者用企业Logo作为背景防伪。如果需要批量处理文档,手动操作效率太低,用代码自动化处理才是王道。

今天就来分享一个简单高效的方案:用 C# 结合免费库 Free Spire.Doc for .NET 给 Word 文档添加水印(包括文本水印和图片水印)。无需依赖Office组件,轻量又好用,新手也能快速上手。

一、准备工作:获取Free Spire.Doc

首先需要安装Free Spire.Doc for .NET。它是一个免费的Word处理类库,能轻松操作Word文档的各种元素(包括水印)。可以直接通过NuGet安装:

  • 在Visual Studio的"解决方案资源管理器"中右键项目
  • 选择"管理NuGet包",搜索"FreeSpire.Doc",点击安装即可

二、添加文本水印:C# 代码示例

文本水印是最常用的类型(比如"机密"、"内部使用")。Free Spire.Doc 提供了 TextWatermark 类,可直接设置文本内容、样式、布局等属性。

完整代码示例:

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

namespace WordWatermarkDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加载Word文档(支持.doc和.docx)
            Document doc = new Document();
            doc.LoadFromFile("示例文档.docx"); // 替换为你的文档路径

            // 2. 创建文本水印对象
            TextWatermark textWatermark = new TextWatermark();
            
            // 设置水印文本内容
            textWatermark.Text = "机密文档";
            
            // 设置字体(名称、大小、颜色)
            textWatermark.FontName = "微软雅黑";
            textWatermark.FontSize = 40;
            textWatermark.Color = Color.LightGray; // 浅灰色不影响正文阅读
            
            // 设置布局:斜向(Diagonal)或水平(Horizontal)
            textWatermark.Layout = WatermarkLayout.Diagonal;
            
            // 3. 将水印应用到文档
            doc.Watermark = textWatermark;

            // 4. 保存文档
            doc.SaveToFile("带文本水印的文档.docx", FileFormat.Docx2013);
            doc.Close();

            // 提示操作完成
            Console.WriteLine("文本水印添加成功!");
        }
    }
}

三、添加图片水印:用 Logo 作为背景

如果需要用图片(比如企业 Logo、版权标识)作为水印,Free Spire.Doc 的 PictureWatermark 类可以满足需求,支持设置图片路径、缩放比例。

完整代码示例:

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

namespace WordImageWatermarkDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加载Word文档
            Document doc = new Document();
            doc.LoadFromFile("示例文档.docx");

            // 2. 创建图片水印对象
            PictureWatermark pictureWatermark = new PictureWatermark();
            
            // 设置图片路径(支持本地图片,格式如.png、.jpg等)
            pictureWatermark.Picture = System.Drawing.Image.FromFile("logo.png"); // 替换为你的图片路径

            // 设置缩放比例(100为原始大小,小于100缩小,大于100放大)
            pictureWatermark.Scaling = 50; // 缩小到50%,避免遮挡正文
            
            // 设置淡化效果
            pictureWatermark.IsWashout = false;

            // 3. 将水印应用到文档
            doc.Watermark = pictureWatermark;

            // 4. 保存文档
            doc.SaveToFile("带图片水印的文档.docx", FileFormat.Docx2013);
            doc.Close();

            Console.WriteLine("图片水印添加成功!");
        }
    }
}

四、注意事项

免费版限制:Free Spire.Doc 免费版支持处理最多500个段落每个文档,无任何水印,适合小型或个人项目。

路径问题:加载文档和图片时,建议使用绝对路径(如@"C:\Files\示例文档.docx"),避免因相对路径错误导致文件找不到。

水印覆盖范围:上述代码会给整个文档添加水印。如果需要给特定页面(如首页)添加水印,可以通过doc.Sections[0]获取指定节,单独设置节的水印。

五、总结

用 Free Spire.Doc for .NET 在 C# 中给 Word 添加水印,步骤非常清晰:加载文档→创建水印对象(文本/图片)→设置属性→应用水印→保存文档。相比依赖 Office Interop(需要安装Office,且性能较差),这种方案更轻量、更稳定。

到此这篇关于通过C#实现给Word文档添加文字和图片水印的文章就介绍到这了,更多相关C# Word添加水印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#读取Excel的三种方式以及比较分析

    C#读取Excel的三种方式以及比较分析

    这篇文章主要介绍了C#读取Excel的三种方式以及比较分析,需要的朋友可以参考下
    2015-11-11
  • WPF使用内置资源系统实现应用程序国际化

    WPF使用内置资源系统实现应用程序国际化

    本文详细介绍了如何利用WPF内置资源系统实现应用程序的国际化和本地化,涵盖创建多语言资源字典、实现资源管理以及动态绑定资源等内容,帮助开发者轻松为WPF应用程序添加多语言支持,需要的朋友可以参考下
    2026-05-05
  • C#自定义事件及用法实例

    C#自定义事件及用法实例

    这篇文章主要介绍了C#自定义事件及用法,实例分析了C#中自定义事件的定义与使用技巧,需要的朋友可以参考下
    2015-05-05
  • C#异步任务延续的三种底原理解析(最新推荐)

    C#异步任务延续的三种底原理解析(最新推荐)

    这篇文章主要介绍了C#异步 任务延续的三种底层玩法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-05-05
  • 使用WPF实现窗口抖动动画效果

    使用WPF实现窗口抖动动画效果

    在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细介绍如何使用 WPF 动画机制 实现一个通用的 窗口抖动帮助类,需要的朋友可以参考下
    2025-05-05
  • c# 遍历 Dictionary的四种方式

    c# 遍历 Dictionary的四种方式

    这篇文章主要介绍了c# 遍历 Dictionary的四种方式,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-09-09
  • 利用C#操作WMI指南

    利用C#操作WMI指南

    WMI提供了一套内置在Microsoft Windows操作系统中的丰富的系统管理服务,可以在有大量的应用程序、服务和设备的系统中提供全方位的管理功能。它允许应用程序的开发者,使用简单的、一致的机制,去查询企业中的任一台计算机上的信息,或是进行系统配置
    2016-11-11
  • C#把整个文件内容读入字符串变量的方法

    C#把整个文件内容读入字符串变量的方法

    这篇文章主要介绍了C#把整个文件内容读入字符串变量的方法,实例分析了C#操作文件与字符串的相关技巧,需要的朋友可以参考下
    2015-07-07
  • C#使用Spire.Doc for .NET实现Word首页面页眉页脚不同设置指南

    C#使用Spire.Doc for .NET实现Word首页面页眉页脚不同设置指南

    在远程办公时代,C# Word文档自动化需求激增,然而开发者常遇痛点:手动调整不同的Word首页页眉页脚繁琐,耗时长,且Interop依赖Office环境,部署难、跨平台弱,因此本文给大家介绍了C#使用Spire.Doc for .NET实现Word首页面眉页脚不同设置指南,需要的朋友可以参考下
    2026-03-03
  • C#实现MQTT服务端与客户端通讯功能

    C#实现MQTT服务端与客户端通讯功能

    这篇文章介绍了C#实现MQTT服务端与客户端通讯的功能,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01

最新评论