用poi 给word文档添加水印
第一步,添加依赖
<dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.0</version></dependency>
第二步,创建一个需要加水印的word文档文件,格式为docx,文档中必须有内容
第三部,编写java代码进行添加水印操作
import java.io.*;
import java.util.regex.Pattern;
import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;public class Test5 {public static void main(String[] args) throws Exception {String path ="F:\\workspace\\poi";String name ="/001.docx";String modelPath = path+name;//设置需要加水印的文件路径//输入的docx文档InputStream in = new FileInputStream(new File(modelPath));XWPFDocument doc= new XWPFDocument(in );XWPFParagraph paragraph = doc.createParagraph();//创建文本段落
// XWPFRun run=paragraph.createRun();//创建run元素
// run.setText("The Body:");//可以给run元素里写正文内容XWPFHeaderFooterPolicy headerFooterPolicy = doc.getHeaderFooterPolicy();//获取页面页脚if (headerFooterPolicy == null) headerFooterPolicy = doc.createHeaderFooterPolicy();//如果没有页眉页脚则创建headerFooterPolicy.createWatermark("平凉科技局");//设置水印显示的内容XWPFHeader header = headerFooterPolicy.getHeader(XWPFHeaderFooterPolicy.DEFAULT);paragraph = header.getParagraphArray(0);org.apache.xmlbeans.XmlObject[] xmlobjects = paragraph.getCTP().getRArray(0).getPictArray(0).selectChildren(new javax.xml.namespace.QName("urn:schemas-microsoft-com:vml", "shape"));if (xmlobjects.length > 0) {com.microsoft.schemas.vml.CTShape ctshape = (com.microsoft.schemas.vml.CTShape)xmlobjects[0];ctshape.setFillcolor("#f6f6f6");//设置水印的颜色ctshape.setStyle(ctshape.getStyle() + ";rotation:315");//设置水印的样式 获取默认样式和旋315度
// ctshape.setStyle(getWaterMarkStyle(ctshape.getStyle(),100) + ";rotation:315");//设置自定义水印的样式,setStyle()方法中需传入样式字符串}doc.write(new FileOutputStream("Test5.docx"));doc.close();}/*** 修改水印样式高度的方法,如果不想改高度可以不用次方法* @param styleStr 之前的水印样式* @param height 需要改成的高度* @return 返回新的修改好的水印样式*/public static String getWaterMarkStyle(String styleStr,double height){//把拿到的样式用";"切割,切割后保存到数组中Pattern p=Pattern.compile(";");String[] strs = p.split(styleStr);//遍历保存的数据,找到高度样式,将高度改为参数传入高度的for(String str : strs){if(str.startsWith("height:")){String heightStr = "height:" + height + "pt";styleStr = styleStr.replace(str,heightStr);break;}}return styleStr;//返回改好的样式}
}
用poi 给word文档添加水印相关推荐
- JAVA不使用POI给Word文档添加水印
程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...
- java生成图章到word_JAVA不使用POI给Word文档添加水印
程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...
- java poi 水印_JAVA不使用POI给Word文档添加水印
程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...
- C# 给word文档添加水印
C# 给word文档添加水印 和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不 ...
- 使用POI读取word文档
使用POI 读取word 文档(word 2003和2007) 最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97.2003.2 ...
- C# Word文档添加水印
在工作中遇到个需求,需要给Word文档添加水印搞了一天才搞出来,所以在此记录一下: 重点用到了E-iceblue官网下载到的:Spire.dll using Spire.Doc; using Spir ...
- 如何用java代码给Word文档添加水印?
为防止非法使用.定义所有权.显示文档状态等多种目的,在 Word 文档中添加水印.在本文中,您将学习如何使用 Java 为 Word 文档添加水印.文章将分别演示如何将文字和图片水印插入到Word文档 ...
- poi操作word文档总结
POI分段落生成纯Word动态模板并导入数据 导出数据,可以用word另存为xml格式的ftl文件,变量用${变量名}表示,然后在类中通过 freemarker去替换变量. 但是怎么导入word数据. ...
- POI生成word文档完整案例及讲解
一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...
- 使用poi操作word文档实现套打功能
使用poi操作word文档实现套打功能 本文目的是为了分享一个实现套打功能,但是不同于简单的word的文本替换而是采用poi对word的文本框就行操作实现的功能: poi中各种jar的说明 套打的实现 ...
最新文章
- 对Python课的看法
- GSM中时隙、信道、突发序列、帧的解释
- WebAPI增加Area以支持无限层级同名Controller
- php 判断update返回为0_PHP empty函数判断0返回真还是假
- hdoj 2022 海选女主角
- Ibatis中的大于、小于、like等符号写法
- XMLHttpRequest.overrideMimeType()
- PHP URL参数获取方式的四种例子
- Chrome内核解析 -- 背景篇:Chrome, Chromium, WebKit, WebKit2, Blink
- C语言利用堆筛选前1000大元素
- 10.2 项目干系人管理
- UI面试常见问题及回答
- 想改变Facebook? 先改变扎克伯格!
- 我的十年 谨以此文迎接我即将到来的三十而立
- 前端学习——vue基础知识
- 漏洞复现——shiro反序列化
- 三相滤波器怎么接线_三相滤波器(380v滤波器)
- 酷壳陈皓:如何学好C语言
- 树莓派4B系统一键安装opencv,再也不要用编译安装啦!(支持buster、bullseye)
- 把一个JAVA程序变成一个可执行文件
热门文章
- RFID天线技术 – 低频和高频RFID天线设计
- html怎么创建页面书签链接,如何:在“设计”视图中为 Web 窗体页插入 HTML 超链接和书签...
- JAVA书签方式导出Word
- 自定义配置文件 /etc/httpd/conf.d
- 全球卫星导航系统(GNSS)相关概念总结
- python扫码点餐系统_python3实现点餐系统
- Ubuntu下插入网线无法联网的问题
- 手机刷机后丢失照片恢复怎么做到?
- ✨✨✨【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(二)✨✨✨
- html 缩小时字体错位,微信字体设置导致页面错位的解决方法