在日常办公中,给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 类,可直接设置文本内容、样式、布局等属性。
完整代码示例:
csharp
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 类可以满足需求,支持设置图片路径、缩放比例。
完整代码示例:
csharp
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,且性能较差),这种方案更轻量、更稳定。