Java 给 Word 文档每一页添加不同图片水印

Word中设置水印时,可加载图片设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法。下面,将以Java代码为例,对Word每一页设置不同的图片水印效果作详细介绍。

在给Word每一页添加水印前,首先需要在Word文档每一页正文的最后一个字符后面插入”连续”分节符,然后在每一节的页眉段落里添加水印图片,并设置图片的坐标位置、对齐方式、衬与文字下方等。最后保存文档。

在程序中引入 Free Spire.Doc for Java 中的Spire.Doc.jar文件(该文件在lib文件夹下);如果需要通过 Maven下载导入,

配置pom.xml:

<span class="hljs-tag"><<span class="hljs-name">repositories>
        <span class="hljs-tag"><<span class="hljs-name">repository>
            <span class="hljs-tag"><<span class="hljs-name">id>com.e-iceblue<span class="hljs-tag">id>
            <span class="hljs-tag"><<span class="hljs-name">url>https://repo.e-iceblue.cn/repository/maven-public/<span class="hljs-tag">url>
        <span class="hljs-tag">repository>
    <span class="hljs-tag">repositories>
<span class="hljs-tag"><<span class="hljs-name">dependencies>
    <span class="hljs-tag"><<span class="hljs-name">dependency>
        <span class="hljs-tag"><<span class="hljs-name">groupId>e-iceblue<span class="hljs-tag">groupId>
        <span class="hljs-tag"><<span class="hljs-name">artifactId>spire.doc.free<span class="hljs-tag">artifactId>
        <span class="hljs-tag"><<span class="hljs-name">version>5.1.0<span class="hljs-tag">version>
    <span class="hljs-tag">dependency>
<span class="hljs-tag">dependencies></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

给每页添加图片水印时,可参考如下步骤:

  • 创建Document类的对象,并通过Document.loadFromFile(String fileName)方法加载Word文档。
  • 通过Document.getSections().get(int index)方法获取指定节。
  • 通过Section.getHeadersFooters().getHeader()方法获取页眉,HeaderFooter.addParagraph()方法添加段落到页眉。
  • 通过Paragraph.appendPicture(String filePath)方法添加图片到段落,DocPicture.setVerticalPosition(float value)方法设置水印图片位置,DocPicture.setHorizontalAlignment(ShapeHorizontalAlignment value)方法设置图片对齐方式。
  • 最后,通过Document.saveToFile(String fileName, FileFormat fileFormat)方法保存文档。

不同页面中设置不一样的图片水印效果,只需要获取该页面对应的节,然后参考上述用到的方法来添加即可。

下面是完整的Java代码示例:

<span class="hljs-keyword">import com.spire.doc.*;
<span class="hljs-keyword">import com.spire.doc.documents.Paragraph;
<span class="hljs-keyword">import com.spire.doc.documents.TextWrappingStyle;
<span class="hljs-keyword">import com.spire.doc.fields.DocPicture;

</span></span></span></span>

Original: https://www.cnblogs.com/m17054598469/p/15879853.html
Author: m17054598469
Title: Java 给 Word 文档每一页添加不同图片水印

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580294/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 老年模式 之 fontScale篇

    之前整理过一篇全局字体设置 || 老年模式的文章,提到过4种方法,各有利弊。 最后推荐了方法4,自定义binding属性来实现。这里扩展一篇。 自定义binding实现的确不错,最…

    Java 2023年6月7日
    092
  • Rocket Mq 常用API 及简单运维

    RocketMQ 常用API 消息 消息消费模式 消息消费模式由消费者来决定,可以由消费者设置MessageModel来决定消息模式。 消息模式默认为集群消费模式 consumer…

    Java 2023年6月7日
    083
  • C语言输出格式工整的日历——2乘6样式(详见本文)

    本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码如不能在Dev-C++上完好运行,出现如下问题: E:\Dev-Cpp\源代码\万年历.c [Error] ‘…

    Java 2023年6月8日
    084
  • 函数中参数传值

    1、基本数据类型传值 当函数中传入的参数为基本数据类型时,函数中对传入参数的操作不会对函数外的数据产生影响。由于基本数据类型的变量名指向的是具体的数值,在函数内部,相当于将参数进行…

    Java 2023年6月8日
    066
  • JAVA处理Blob大对象

    Blob对象是SQL Blob的Java语言映射。SQL Blob是一个内置类型,它可以将一个二进制大对象保存在数据库中。接口ResultSet、CallableStatement…

    Java 2023年5月29日
    077
  • SpringMVC 五种注解参数绑定

    SpringMVC参数绑定,简单来说就是将客户端请求的key/value数据绑定到controller方法的形参上,然后就可以在controller中使用该参数了 下面通过5个常用…

    Java 2023年5月30日
    099
  • java面试——垃圾回收机制

    垃圾回收机制:——GC 初学java时。最经典的一句话是”java不像C,需要担心处理不用的内存,他有自己的垃圾回收,会自己处理的”,这是当时老师上课提过的…

    Java 2023年6月9日
    096
  • Mysql 日期格式化 复杂日期区间查询

    最近在做项目涉及到 Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用的挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的…

    Java 2023年6月13日
    076
  • 从 modCount 看 java集合 fail-fast 机制

    在常见的Java的非线程安全集合类中(如HashMap、ArrayList),经常可以在一些修改结构的操作(如Add)中看到实例变量 modCount++ ,来统计集合的修改次数。…

    Java 2023年6月6日
    055
  • 分布式搜索引擎–02

    1.DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL(Doma…

    Java 2023年6月9日
    063
  • Java常用命令行工具

    常用的Java命令行工具的使用梳理,方便以后线上问题排查处理. 示例使用的虚拟机版本(JVM自带命令行工具在bin目录下) [root@localhost ~] 常用Java命令行…

    Java 2023年5月29日
    0103
  • C语言-字符串函数的实现(五)之strstr

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strnc…

    Java 2023年6月10日
    069
  • java stream group by 对结果 value 进行二次 map 示例

    var result = societyMemberService.list(new LambdaQueryWrapper() .eq(SocietyMember::getSoci…

    Java 2023年5月29日
    084
  • redis 注册开机自启动服务(注意:要到你安装redis的根目录下执行下面的cmd命令)

    #注册安装服务 redis-server –service-install redis.windows.conf –loglevel verbose #卸载服务 #redis-…

    Java 2023年6月5日
    098
  • 好用到爆!GitHub 星标 32.5k+的命令行软件管理神器,功能真心强大!

    前言(废话) 本来打算在公司偷偷摸摸给星球的用户写一篇编程喵整合 MongoDB 的文章,结果在通过 brew 安装 MongoDB 的时候竟然报错了。原因很简单,公司这台 Mac…

    Java 2023年6月9日
    090
  • Springboot 链接Oracle 配置

    1.在配置文件中配置Oracle配置 spring.datasource.url=jdbc:oracle:thin:@ip:端口:XE spring.datasource.user…

    Java 2023年5月30日
    061
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球