一般情况下,在Word中添加文字水印仅支持添加一个文本字样的水印,但在复杂的办公环境中,由于对不同文档的设计要求,需要在Word文档中添加平铺水印效果,即文档中的水印文字以多行多列分布的形式存在。本文将介绍如何来实现该水印效果的方法,下面是详细步骤及方法。
dll引用
通过NuGet引入dll(2种方法)的方法
1.可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,点击“安装”。等待程序安装完成。
2.将以下内容复制到PM控制台安装:
| 
 1 
 | 
Install-Package FreeSpire.Doc -Version 10.2 | 
手动添加dll引用的方法
可通过手动下载包到本地,然后解压,找到BIN文件夹下的Spire.Doc.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。
添加多行多列文字水印
在Word中添加多行文字水印时,实现的方法是通过在页眉中添加形状艺术字,并通过多次复制形状来模拟实现多行文字水印效果。以下是实现水印添加的主要代码步骤:
- 创建 Document类的对象,并调用 Document.LoadFromFile(string fileName)方法加载Word文档。
 - 创建 ShapeObject类的实例,并通过 ShapeObject.Width、 ShapeObject.Height、 ShapeObject.VerticalPosition、 ShapeObject.Rotation、 ShapeObject.WordArt.Text、 ShapeObject.WordArt.FontFamily、 ShapeObject.FillColor等属性设置形状大小、位置、旋转角度、水印文字、字体及颜色等。
 - for循环遍历所有 Section,通过 Section.HeadersFooters.Header属性获取页眉,并以 HeaderFooter.AddParagraph()方法添加段落到页眉。
 - 通过for循环以 ShapeObject.Clone()方法多次复制形状,并通过 ShapeObject.VerticalPosition和 ShapeObject.HorizontalPosition属性设置形状位置排列。
 - 调用 Paragraph.ChildObjects.Add(IDocumentObject entity)方法添加形状到页眉段落。
 - 最后,通过 Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存文档到指定路径。
 
C#
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
 | 
using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields; namespace MultiLineTextWatermark{    class Program    {        static void Main(string[] args)        {            //加载Word文档            Document doc = new Document();            doc.LoadFromFile("test.docx");             //创建形状,并设置大小、水印文字、位置及样式            ShapeObject shape = new ShapeObject(doc, ShapeType.TextPlainText);            shape.Width = 60;            shape.Height =15;            shape.VerticalPosition = 25;            shape.HorizontalPosition = 20;            shape.Rotation = 320;            shape.WordArt.Text = "草稿副本";            shape.WordArt.FontFamily = "宋体";            shape.FillColor = System.Drawing.Color.Red;            shape.StrokeColor = System.Drawing.Color.Red;             //遍历所有section            for (int n = 0; n < doc.Sections.Count; n++)            {                Section section = doc.Sections[n];                 //获取页眉                HeaderFooter header = section.HeadersFooters.Header;                                //添加段落到页眉                Paragraph paragraph1 = header.AddParagraph();                 for (int i = 0; i < 5; i++)                {                                        for (int j = 0; j < 6; j++)                    {                        //复制形状并设置多行多列位置                        shape = (ShapeObject)shape.Clone();                        shape.VerticalPosition = 50 + 150 * i;                        shape.HorizontalPosition = 20 + 160 * j;                         //添加形状到段落                        paragraph1.ChildObjects.Add(shape);                    }                }            }             //保存文档            doc.SaveToFile("result.docx", FileFormat.Docx2013);            System.Diagnostics.Process.Start("result.docx");         }    }} | 
VB.NET
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
 | 
Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.Fields Namespace MultiLineTextWatermark         Class Program                   Private Shared Sub Main(args As String())                            '加载Word文档                            Dim doc As New Document()                            doc.LoadFromFile("test.docx")                             '创建形状,并设置大小、水印文字、位置及样式                            Dim shape As New ShapeObject(doc, ShapeType.TextPlainText)                            shape.Width = 60                            shape.Height = 15                            shape.VerticalPosition = 25                            shape.HorizontalPosition = 20                            shape.Rotation = 320                            shape.WordArt.Text = "草稿副本"                            shape.WordArt.FontFamily = "宋体"                            shape.FillColor = System.Drawing.Color.Red                            shape.StrokeColor = System.Drawing.Color.Red                             '遍历所有section                            For n As Integer = 0 To doc.Sections.Count - 1                                     Dim section As Section = doc.Sections(n)                                      '获取页眉                                     Dim header As HeaderFooter = section.HeadersFooters.Header                                      '添加段落到页眉                                     Dim paragraph1 As Paragraph = header.AddParagraph()                                      For i As Integer = 0 To 4                                                For j As Integer = 0 To 5                                                        '复制形状并设置多行多列位置                                                        shape = DirectCast(shape.Clone(), ShapeObject)                                                        shape.VerticalPosition = 50 + 150 * i                                                        shape.HorizontalPosition = 20 + 160 * j                                                         '添加形状到段落                                                        paragraph1.ChildObjects.Add(shape)                                               Next                                     Next                            Next                             '保存文档                            doc.SaveToFile("result.docx", FileFormat.Docx2013)                            System.Diagnostics.Process.Start("result.docx")                   End Sub         End ClassEnd Namespace | 

—END—
