.net项目 通过OfficeIMO.Word给Word文档添加文本水印

OfficeIMO 是一个用于创建和操作 Microsoft Word (.docx) 和 Excel (.xlsx) 文档的 .NET 库。它基于 OpenXML SDK,提供了更简单直观的 API 接口。

参考:

OfficeIMO - 为 .NET 开发者打造的轻量级 Word 文档操作库

OfficeIMO GitHub

在我的项目中,文件输入输出都是byte[],可以有其他输入输出

也可以调整为图片水印,具体可以参考其他文档。

cs 复制代码
using OfficeIMO.Word;
public static class WaterMarkHelper
{
	public static byte[] AddWatermark4Word(byte[] fileBytes, string watermarkText)
	{    
		using (var inputStream = new MemoryStream())
		{
			inputStream.Write(fileBytes, 0, (int)fileBytes.Length);
			using (var doc = WordDocument.Load(inputStream))
			{
				doc.AddHeadersAndFooters();
				var watermark = doc.Sections[0].Header.Default.AddWatermark(WordWatermarkStyle.Text, watermarkText);
				watermark.Rotation = -45; //添加一定的旋转角度

				// 保存到新流
				using (MemoryStream outputStream = new MemoryStream())
				{
					doc.Save(outputStream);
					return outputStream.ToArray();
				}
			}
		}
	}
}