如何通过Java添加水印到Word文档

 更新时间:2019年07月09日 15:25:11   作者:Miaonly  
这篇文章主要介绍了如何通过Java添加水印到Word文档,水印是一种常用于各种文档的声明、防伪手段,一般可设置文字水印或者加载图片作为水印。以下内容将分享通过Java编程给Word文档添加水印效果的方法,需要的朋友可以参考下

前言

水印是一种常用于各种文档的声明、防伪手段,一般可设置文字水印或者加载图片作为水印。以下内容将分享通过Java编程给Word文档添加水印效果的方法,即

  • 文本水印
  • 图片水印

使用工具:Free Spire.Doc for Java 2.0.0(免费版)

Jar导入:

方法1:通过官网下载控件包。在程序下新建一个directory目录,并命名(本示例中命名为lib);将控件包lib文件夹下的jar(如下图1)拷贝到程序中新建的目录下。

图1:

复制jar文件后,鼠标右键点击jar文件,选择”Add as Library”。完成导入(如下图2)。

图2:

引用完成后,可以查看包含在其中的类、方法、属性等。如图3:

图3:

方法2:通过maven导入。参考导入方法

Java代码示例(供参考)

1.添加文本水印

import com.spire.doc.*;
import com.spire.doc.documents.WatermarkLayout;
import java.awt.*;

public class Main {

  public static void main(String[] args) {
    Document document = new Document();
    document.loadFromFile("sample.docx");

    InsertTextWatermark(document.getSections().get(0));

    document.saveToFile("textwatermark.docx",FileFormat.Docx );
  }
   private static void InsertTextWatermark(Section section){
     TextWatermark txtWatermark = new TextWatermark();
     txtWatermark.setText("内部使用");
     txtWatermark.setFontSize(40);
     txtWatermark.setColor(Color.red);
     txtWatermark.setLayout(WatermarkLayout.Diagonal);
     section.getDocument().setWatermark(txtWatermark);
   }
}

文本水印效果:

2. 添加图片水印

import com.spire.doc.*;

public class Main {

  public static void main(String[] args) {
    Document document = new Document();
    document.loadFromFile("sample.docx");

    PictureWatermark picture = new PictureWatermark();
    picture.setPicture("wx.png");
    picture.setScaling(5);
    picture.isWashout(false);
    document.setWatermark(picture);

    document.saveToFile("imagewatermark.docx",FileFormat.Docx );
  }
}

图片水印效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring Security实现不同接口安全策略方法详解

    Spring Security实现不同接口安全策略方法详解

    这篇文章主要介绍了Spring Security实现不同接口安全策略方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Spring Boot自定义Banner实现代码

    Spring Boot自定义Banner实现代码

    这篇文章主要介绍了Spring Boot自定义Banner实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java利用Dijkstra和Floyd分别求取图的最短路径

    Java利用Dijkstra和Floyd分别求取图的最短路径

    本文主要介绍了图的最短路径的概念,并分别利用Dijkstra算法和Floyd算法求取最短路径,最后提供了基于邻接矩阵和邻接表的图对两种算法的Java实现。需要的可以参考一下
    2022-01-01
  • Java 8 Stream.distinct() 列表去重的操作

    Java 8 Stream.distinct() 列表去重的操作

    这篇文章主要介绍了Java 8 Stream.distinct() 列表去重的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • JAVA利用递归删除文件代码实例

    JAVA利用递归删除文件代码实例

    这篇文章主要介绍了JAVA利用递归删除文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java 如何获取url地址文件流

    Java 如何获取url地址文件流

    这篇文章主要介绍了Java 如何获取url地址文件流,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Java中的CompletableFuture使用解析

    Java中的CompletableFuture使用解析

    这篇文章主要介绍了Java中的CompletableFuture使用解析,为什么CompletableFuture要定制化线程池,因为默认的线程池是ForkJoinPool,这个线程池的最大线程数默认是你的电脑的线程数数减1,假如我线程电脑是4核8线程的,ForkJoinPool的最大线程数就是7,需要的朋友可以参考下
    2024-01-01
  • 3分钟快速搞懂Java的桥接方法示例

    3分钟快速搞懂Java的桥接方法示例

    这篇文章主要介绍了3分钟快速搞懂Java的桥接方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Mybatis使用foreach批量更新数据报无效字符错误问题

    Mybatis使用foreach批量更新数据报无效字符错误问题

    这篇文章主要介绍了Mybatis使用foreach批量更新数据报无效字符错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 亲测解决,nacos下线失败问题

    亲测解决,nacos下线失败问题

    这篇文章主要介绍了亲测解决,nacos下线失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论