添加水印
# 添加水印
- 查看本示例演示效果(Windows版)
- 查看本示例演示效果(国产版)
- 本示例关键代码的编写位置,请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码
注意
本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。
在很多场景下,Word文档正式发文之前,或者说形成最终文档之前,常常需要往Word文件中添加水印,并且会根据文件类型或内容的不同,需要添加的水印也不一样。
添加水印是Word软件里的一个简单功能,直接点击Word工具栏中的水印按钮就可以手动添加,但是在Web项目开发过程中,时常会遇到通过调用程序接口往Word文档里面动态添加水印的需求,虽然网上有各种各样的操作Word文档的技术,但是对于水印的处理,包括那些通过vba添加水印的方法,都是存在很大问题的。
一个简单的没有任何格式的Word文件,使用网上的某些技术,也是可以简单的添加水印的,但是正式项目中的Word文件,一般都会分为封面、正文、结尾,中间还会分章节,为了让每一页都有水印,这种情况下,网上的技术就无法实现了。PageOffice封装实现了添加水印这个功能,屏蔽了添加水印的复杂细节,所以在开发者看来,调用PageOffice来添加水印,只需编写一句代码即可实现。
添加水印的具体实现有两种方案,分为服务器端编码添加和客户端编码添加。本文重点介绍服务器端编码添加水印的方法,客户端调用js添加水印的方法请参考“Word-JS控制”里的js插入水印章节。
注意:有分节符的文档,只能在插入分节符之前的页面添加水印。
# 后端代码
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
WordDocumentWriter doc = new WordDocumentWriter();
doc.getWaterMark().setText("PageOffice开发平台");//添加文字水印
//doc.getWaterMark().setImage("D:\\logo.png");//添加图片水印
poCtrl.setWriter(doc); // 必须。
poCtrl.webOpen("D:\\template1.docx", OpenModeType.docNormalEdit, "张佚名");
PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
PageOfficeNetCore.Word.WordDocumentWriter doc = new PageOfficeNetCore.Word.WordDocumentWriter();
doc.WaterMark.Text = "PageOffice开发平台";//添加文字水印
//doc.WaterMark.SetImage("D:\\logo.png");//添加图片水印
poCtrl.SetWriter(doc);// 必须。
poCtrl.WebOpen("D:\\template1.docx", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");
// Make sure to add code blocks to your code group
# 前端代码
本示例无前端关键代码。
上次更新: 2025/07/21, 15:21:36