C# 给Word每一页设置不同文字水印

满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述C# 给Word每一页设置不同文字水印相关的知识,希望能为你提供帮助。
Word中设置水印时,可预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法。下面,将以C# 代码为例,对Word每一页设置不同的文字水印效果作详细介绍。
方法思路
在给Word每一页添加水印前,首先需要在Word文档每一页正文的最后一个字符后面插入“连续”分节符,然后在每一节的页眉段落里添加水印图片,并设置图片的坐标位置、对齐方式、衬于文字下方等。最后保存文档。
dll引用
?方法1?
在程序中引入Spire.Doc.dll文件;将??Spire.Doc for .NET??下载到本地,解压,找到BIN文件夹下的Spire.Doc.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。
?方法2?
通过??NuGet??安装。可通过以下2种方法安装:

  1. 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Spire.Doc”,点击“安装”。等待程序安装完成。
  2. 将以下内容复制到PM控制台安装。
Install-Package Spire.Doc -Version 10.1.14


代码示例
  • 给每页添加图片水印时,可参考如下步骤:
  • 创建?Document??类的对象,并通过?LoadFromFile(stringfileName)?方法加载Word文档。
  • 通过?Document.Sections[]?属性获取指定节。
  • 通过?HeadersFooters.Header?属性获取页眉,?HeaderFooter.AddParagraph()?方法添加段落到页眉。
  • 创建?ShapeObject?类的对象,并传入参数设置形状类型为?TextPlainText?类型的艺术字。并调用方法设置艺术字样式,如艺术字高度、宽度、旋转、颜色、对齐方式等。
  • 使用?DocumentObjectCollection.Add(IDocumentObject)?方法将艺术字添加到段落。
  • 最后,通过?Document.SaveToFile(string fileName, FileFormatfileFormat)?方法保存文档。
不同页面中设置不一样的图片水印效果,只需要获取该页面对应的节,然后参考上述用到的方法来添加即可。
??C#??
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace TextWatermark2

class Program

static void Main(string[] args)

//加载Word测试文档
Document doc = new Document();
doc.LoadFromFile("test.docx");

//获取文档第一节
Section section1 = doc.Sections[0];

//定义水印文字的纵向坐标位置
float y = section1.PageSetup.PageSize.Height/3;

//添加文字水印1
HeaderFooter header1 = section1.HeadersFooters.Header; //获取页眉
header1.Paragraphs.Clear(); //删除原有页眉格式的段落
Paragraph para1 = header1.AddParagraph(); //重新添加段落

//添加艺术字并设置大小
ShapeObject shape1 = new ShapeObject(doc, ShapeType.TextPlainText);
shape1.Width = 362;
shape1.Height = 118;
//设置艺术字文本内容、位置及样式(即文本水印字样)
shape1.Rotation = 315;
shape1.WordArt.Text = "内部使用";
shape1.FillColor = Color.ForestGreen;
shape1.LineStyle = ShapeLineStyle.Single;
shape1.StrokeColor = Color.ForestGreen;
shape1.StrokeWeight = 0.5;
shape1.VerticalPosition = y;
shape1.HorizontalAlignment = ShapeHorizontalAlignment.Center;
para1.ChildObjects.Add(shape1);

//同理设置第二节页眉中的文字水印2
Section section2 = doc.Sections[1];
HeaderFooter header2 = section2.HeadersFooters.Header;
header2.Paragraphs.Clear();
Paragraph para2 = header2.AddParagraph();
ShapeObject shape2 = new ShapeObject(doc, ShapeType.TextPlainText);
shape2.Width = 362;
shape2.Height = 118;
shape2.Rotation = 315;
shape2.WordArt.Text = "绝密资料";
shape2.FillColor = Color.HotPink;
shape2.LineStyle = ShapeLineStyle.Single;
shape2.StrokeColor = Color.HotPink;
shape2.StrokeWeight = 0.5;
shape2.VerticalPosition = y;
shape2.HorizontalAlignment = ShapeHorizontalAlignment.Center;
para2.ChildObjects.Add(shape2);

//同理设置第三节中的页眉中的文字水印3
Section section3 = doc.Sections[2];
HeaderFooter header3 = section3.HeadersFooters.Header;
header3.Paragraphs.Clear();
Paragraph para3 = header3.AddParagraph();
ShapeObject shape3 = new ShapeObject(doc, ShapeType.TextPlainText);
shape3.Width = 362;
shape3.Height = 118;
shape3.Rotation = 315;
shape3.WordArt.Text = "禁止传阅";
shape3.FillColor = Color.DarkOrange;
shape3.LineStyle = ShapeLineStyle.Single;
shape3.StrokeColor = Color.DarkOrange;
shape3.StrokeWeight = 0.5;
shape3.VerticalPosition = y;
shape3.HorizontalAlignment = ShapeHorizontalAlignment.Center;
para3.ChildObjects.Add(shape3);

//保存文档
doc.SaveToFile("DifferentTextWatermark.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("DifferentTextWatermark.docx");



【C# 给Word每一页设置不同文字水印】VB.NET
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace TextWatermark2
Class Program
Private Shared Sub Main(args As String())
加载Word测试文档
Dim doc As New Document()
doc

    推荐阅读