Java 给Word添加水印

565 阅读2分钟

在Word中添加水印,可以有效地保护文档的机密性和防止他人剽窃,也可以作为文档的版权声明或草稿标记,方便进行统一管理。Word中添加水印的方法有很多种,比如使用内置的“水印”功能、使用“页眉/页脚”功能、使用插入图片/文本框并调整其透明度等方式。这里我想介绍如何通过Java程序实现该功能。水印包括图片水印和文本水印。所用到的工具是Free Spire.Doc for Java。下面是具体的方法和示例代码。

程序环境:

IntelliJ IDEA 2018 (jdk 1.8.0)

在进行操作之前先导入jar包,请参考以下两种导入方式:

方法一: 如果使用的是 maven,可以添加以下代码到项目的 pom.xml 文件中。


<repositories>

    <repository>

        <id>com.e-iceblue</id>

        <name>e-iceblue</name>

        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

    </repository>

</repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.doc.free</artifactId>

        <version>5.2.0</version>

    </dependency>

</dependencies>

方法二 : 如果没有使用 maven,则可以从此链接下载Free Spire.Doc for Java,找到lib文件夹下的Spire.doc.jar并进行解压;然后在IDEA中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“jar文件或路径”(JARs or Directories),找到解压后的Spire.doc.jar 文件,点击确认,将其导入到项目中。

文本水印

具体方法:

  • 创建一个 Document 实例。
  • 使用 Document.loadFromFile() 方法加载示例 Word 文档。
  • 使用 Document.getSections().get() 方法获取第一节。
  • 创建一个 TextWatermark 实例。
  • 使用 TextWatermark 类提供的方法设置文本水印的文本、字体大小、颜色和布局。
  • 使用 Section.getDocument().setWatermark() 方法将文本水印添加到示例文档。
  • 使用 Document.saveToFile() 方法保存文件。

示例代码:

import com.spire.doc.*;

import com.spire.doc.documents.WatermarkLayout;

import java.awt.*;

 

public class WordTextWatermark {

    public static void main(String[] args) {

        //创建一个Document实例

        Document document = new Document();

 

        //加载示例 Word 文档

        document.loadFromFile("sample.docx");

 

        //获取第一节

        Section section = document.getSections().get(0);

 

        //创建一个 TextWatermark 实例

        TextWatermark txtWatermark = new TextWatermark();

 

        //设置文本水印格式

        txtWatermark.setText("内部机密");

        txtWatermark.setFontSize(40);

        txtWatermark.setColor(Color.red);

        txtWatermark.setLayout(WatermarkLayout.Diagonal);

 

        //将文本水印添加到示例文档

        section.getDocument().setWatermark(txtWatermark);

 

        //保存文件

        document.saveToFile("result1.docx", FileFormat.Docx);

    }

 

}

效果图:

image.png

图片水印

具体方法:

  • 创建一个 Document 实例。
  • 使用 Document.loadFromFile() 方法加载示例 Word 文档。
  • 创建一个 PictureWatermark 实例。
  • 使用 PictureWatermark.setPicture() 方法加载图像作为图像水印,然后使用 PictureWatermark.setScaling() 方法和 PictureWatermark.isWashout() 方法设置图像水印的属性。
  • 使用 Document.setWatermark() 方法将图像水印添加到示例文档中。
  • 使用 Document.saveToFile() 方法保存文件。

示例代码:

import com.spire.doc.*;

 

 

public class WordImageWatermark {

    public static void main(String[] args)  throws Exception{

        //创建一个Document实例

        Document document = new Document();

 

        //加载示例 Word 文档

        document.loadFromFile("sample.docx");

 

        //创建一个 PictureWatermark 实例

        PictureWatermark picture = new PictureWatermark();

 

        //设置图像水印格式

        picture.setPicture("logo.png");

        picture.setScaling(100);

        picture.isWashout(false);

 

        //将图像水印添加到示例文档中

        document.setWatermark(picture);

 

        //保存文件

        document.saveToFile("result2.docx",FileFormat.Docx );

    }

}

效果图:

image.png