第一步,添加依赖

        <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文档添加水印相关推荐

  1. JAVA不使用POI给Word文档添加水印

    程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...

  2. java生成图章到word_JAVA不使用POI给Word文档添加水印

    程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...

  3. java poi 水印_JAVA不使用POI给Word文档添加水印

    程序员在开发项目时,经常需要给一些图片.文件添加水印,但往往代码编写复杂,只能是先将文件上传再调用Graphics类才能实现这一功能.但是最无奈的是这个类只能给图片添加水印,而无法通过程序给Word文 ...

  4. C# 给word文档添加水印

    C# 给word文档添加水印 和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不 ...

  5. 使用POI读取word文档

    使用POI 读取word 文档(word 2003和2007) 最近在给客户做系统的时候,用户提出需求,要能够导入 word 文件,现在 microsoft word 有好几个版本 97.2003.2 ...

  6. C# Word文档添加水印

    在工作中遇到个需求,需要给Word文档添加水印搞了一天才搞出来,所以在此记录一下: 重点用到了E-iceblue官网下载到的:Spire.dll using Spire.Doc; using Spir ...

  7. 如何用java代码给Word文档添加水印?

    为防止非法使用.定义所有权.显示文档状态等多种目的,在 Word 文档中添加水印.在本文中,您将学习如何使用 Java 为 Word 文档添加水印.文章将分别演示如何将文字和图片水印插入到Word文档 ...

  8. poi操作word文档总结

    POI分段落生成纯Word动态模板并导入数据 导出数据,可以用word另存为xml格式的ftl文件,变量用${变量名}表示,然后在类中通过 freemarker去替换变量. 但是怎么导入word数据. ...

  9. POI生成word文档完整案例及讲解

    一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...

  10. 使用poi操作word文档实现套打功能

    使用poi操作word文档实现套打功能 本文目的是为了分享一个实现套打功能,但是不同于简单的word的文本替换而是采用poi对word的文本框就行操作实现的功能: poi中各种jar的说明 套打的实现 ...

最新文章

  1. 对Python课的看法
  2. GSM中时隙、信道、突发序列、帧的解释
  3. WebAPI增加Area以支持无限层级同名Controller
  4. php 判断update返回为0_PHP empty函数判断0返回真还是假
  5. hdoj 2022 海选女主角
  6. Ibatis中的大于、小于、like等符号写法
  7. XMLHttpRequest.overrideMimeType()
  8. PHP URL参数获取方式的四种例子
  9. Chrome内核解析 -- 背景篇:Chrome, Chromium, WebKit, WebKit2, Blink
  10. C语言利用堆筛选前1000大元素
  11. 10.2 项目干系人管理
  12. UI面试常见问题及回答
  13. 想改变Facebook? 先改变扎克伯格!
  14. 我的十年 谨以此文迎接我即将到来的三十而立
  15. 前端学习——vue基础知识
  16. 漏洞复现——shiro反序列化
  17. 三相滤波器怎么接线_三相滤波器(380v滤波器)
  18. 酷壳陈皓:如何学好C语言
  19. 树莓派4B系统一键安装opencv,再也不要用编译安装啦!(支持buster、bullseye)
  20. 把一个JAVA程序变成一个可执行文件

热门文章

  1. RFID天线技术 – 低频和高频RFID天线设计
  2. html怎么创建页面书签链接,如何:在“设计”视图中为 Web 窗体页插入 HTML 超链接和书签...
  3. JAVA书签方式导出Word
  4. 自定义配置文件 /etc/httpd/conf.d
  5. 全球卫星导航系统(GNSS)相关概念总结
  6. python扫码点餐系统_python3实现点餐系统
  7. Ubuntu下插入网线无法联网的问题
  8. 手机刷机后丢失照片恢复怎么做到?
  9. ✨✨✨【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(二)✨✨✨
  10. html 缩小时字体错位,微信字体设置导致页面错位的解决方法