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

Posted Tobemia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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");


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以上是关于C# 给Word每一页设置不同文字水印的主要内容,如果未能解决你的问题,请参考以下文章

word中插入图片后,怎么让水印显示在图片上面?

如何给Excel加水印背景

word怎么插入水印背景

如何在word中给图片加水印(怎样用Word给图片加水印)

在word中怎么将指定文字替换成艺术字

word排版遇到问题,版心每页20行,每行25字怎样设置。