满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述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种方法安装:
- 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Spire.Doc”,点击“安装”。等待程序安装完成。
- 将以下内容复制到PM控制台安装。
代码示例
- 给每页添加图片水印时,可参考如下步骤:
- 创建?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推荐阅读
- #yyds干货盘点#BufferGeometry的setDrawRange的使用
- NoSQL之Redis配置与优化(前半段)
- uniapp实战笔记微信小程序设置字体的开发踩坑记录
- kubectl 彩色输出 -- kubecolor
- 私有化部署的企业级在线文档产品说明书,请查收!
- IP基本原理3-H3C认证网络工程师(H3CNE)
- 网络架构设计实现中的复杂性探讨01
- 第十五节:SpringBoot使用JPA访问数据库
- 如何判断 .NET Core 应用程序是以管理员身份运行 #yyds干货盘点#