龙空技术网

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

IT技术资源爱好者 211

前言:

而今你们对“word2020水印”大致比较注重,兄弟们都需要剖析一些“word2020水印”的相关知识。那么小编同时在网上收集了一些关于“word2020水印””的相关知识,希望朋友们能喜欢,小伙伴们快快来了解一下吧!

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(string fileName)方法加载Word文档。通过Document.Sections[]属性获取指定节。通过HeadersFooters.Header属性获取页眉,HeaderFooter.AddParagraph()方法添加段落到页眉。创建ShapeObject类的对象,并传入参数设置形状类型为TextPlainText类型的艺术字。并调用方法设置艺术字样式,如艺术字高度、宽度、旋转、颜色、对齐方式等。使用DocumentObjectCollection.Add(IDocumentObject)方法将艺术字添加到段落。最后,通过Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存文档。

不同页面中设置不一样的文字水印效果,只需要获取该页面对应的节,然后参考上述用到的方法来添加即可。

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");        }    }}

VB.NET

Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsImports System.DrawingNamespace TextWatermark2    Class Program        Private Shared Sub Main(args As String())            '加载Word测试文档            Dim doc As New Document()            doc.LoadFromFile("test.docx")            '获取文档第一节            Dim section1 As Section = doc.Sections(0)            '定义水印文字的纵向坐标位置            Dim y As Single = section1.PageSetup.PageSize.Height / 3            '添加文字水印1            Dim header1 As HeaderFooter = section1.HeadersFooters.Header            '获取页眉            header1.Paragraphs.Clear()            '删除原有页眉格式的段落            Dim para1 As Paragraph = header1.AddParagraph()            '重新添加段落            '添加艺术字并设置大小            Dim shape1 As 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            Dim section2 As Section = doc.Sections(1)            Dim header2 As HeaderFooter = section2.HeadersFooters.Header            header2.Paragraphs.Clear()            Dim para2 As Paragraph = header2.AddParagraph()            Dim shape2 As 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            Dim section3 As Section = doc.Sections(2)            Dim header3 As HeaderFooter = section3.HeadersFooters.Header            header3.Paragraphs.Clear()            Dim para3 As Paragraph = header3.AddParagraph()            Dim shape3 As 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")        End Sub    End ClassEnd Namespace

如图,每一页均可显示不同的文字水印效果:

标签: #word2020水印