写点什么

如何通过 Java 代码给 Word 文档添加水印?

作者:在下毛毛雨
  • 2022-11-18
    四川
  • 本文字数:3178 字

    阅读完需:约 10 分钟

如何通过Java代码给Word文档添加水印?

Word 中可以为文档添加的水印分为两种形式:文字水印和图片水印。水印是一种数字保护的手段,在文档上添加水印可以传达有用信息,或者在不影响正文文字显示效果的同时,为打印文档增添视觉趣味,能起到传递信息,宣传推广的作用。此外,它还能起到提示文档性质以及进行相关说明的作用。那么我们如何给 Word 文档添加水印呢?本文将通过 Java 代码,以编程的方式给 Word 文档添加水印。以下是具体步骤及方法,并附上 Java 代码供大家参考,希望这篇文章能对大家有所裨益。

 

  • 给 Word 文档添加多行文字水印

  • 给 Word 文档添加文字水印

  • 给 Word 文档添加图片水印

程序环境:

方法 1:手动引入。将 FreeSpire.Doc for Java 下载到本地,解压,找到 lib 文件夹下的 Spire.Doc.jar 文件。在 IDEA 中打开如下界面,将本地路径中的 jar 文件引入 Java 程序

方法 2: 如果您想通过 Maven 安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>        <repository>            <id>com.e-iceblue</id>            <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>
复制代码

给 Word 文档添加多行文字水印

  • 创建一个 Document 实例。

    使用 Document.loadFromFile() 方法加载示例 Word 文档。

    创建 ShapeObject 类的实例,并通过 ShapeObject.setWidth()、ShapeObject.setHeight()、ShapeObject.setVerticalPosition()、ShapeObject.setHorizontalPosition( )、ShapeObject.setRotation()、ShapeObject.getWordArt.setText()、ShapeObject.getWordArt.setFontFamily()、ShapeObject.setFillColor()等方法设置形状大小、位置、旋转角度、水印文字、字体及颜色等。

    for 循环遍历所有 Section,通过 section.getHeadersFooters().getHeader()方法获取页眉,如果页眉有段落,取它第一个段落,并以 HeaderFooter.AddParagraph() 方法添加段落到页眉。

    通过 for 循环以 ShapeObject. deepClone() 方法多次复制艺术字,并通过 ShapeObject.setVerticalPosition()  和 ShapeObject.setHorizontalPosition() 方法设置形状位置排列。

    使用 Document.saveToFile() 方法保存文件。

完整代码

Java

import com.spire.doc.*;import com.spire.doc.documents.*;import com.spire.doc.fields.ShapeObject;
import java.awt.*;
public class WordWatermark { public static void main(String[] args) { //加载示例文档 Document doc = new Document(); doc.loadFromFile("AI创意赛.docx"); //添加艺术字并设置大小 ShapeObject shape = new ShapeObject(doc, ShapeType.Text_Plain_Text); shape.setWidth(60); shape.setHeight(20); //设置艺术字文本内容、位置及样式 shape.setVerticalPosition(30); shape.setHorizontalPosition(20); shape.setRotation(315); shape.getWordArt().setFontFamily("黑体"); shape.getWordArt().setText("内部使用"); shape.setFillColor(Color.RED); shape.setLineStyle(ShapeLineStyle.Single); shape.setStrokeColor(new Color(192, 192, 192, 255)); shape.setStrokeWeight(1);
Section section; HeaderFooter header; for (int n = 0; n < doc.getSections().getCount(); n++) { section = doc.getSections().get(n); //获取section的页眉 header = section.getHeadersFooters().getHeader(); Paragraph paragraph;
if (header.getParagraphs().getCount() > 0) { //如果页眉有段落,取它第一个段落 paragraph = header.getParagraphs().get(0); } else { //否则新增加一个段落到页眉 paragraph = header.addParagraph(); } for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { //复制艺术字并设置多行多列位置 shape = (ShapeObject) shape.deepClone(); shape.setVerticalPosition(50 + 150 * i); shape.setHorizontalPosition(20 + 160 * j); paragraph.getChildObjects().add(shape); } } } //保存文档 doc.saveToFile("添加多行文字水印.docx", FileFormat.Docx_2013); }}
复制代码

效果图

给 Word 文档添加文字水印

  • 创建一个 Document 实例。

    使用 Document.loadFromFile() 方法加载示例 Word 文档。

    使用 Document.getSections().get() 方法获取第一节。

    创建一个 TextWatermark 实例。

    使用 TextWatermark 类提供的方法设置文本水印的文本、字体大小、颜色和布局。

    使用 Section.getDocument().setWatermark() 方法将文本水印添加到示例文档。

    使用 Document.saveToFile() 方法保存文件。

完整代码

Java

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("AI创意赛.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("添加文本水印.docx", FileFormat.Docx); }}
复制代码

效果图

给 Word 文档添加图片水印

  • 创建一个 Document 实例。

    使用 Document.loadFromFile() 方法加载示例 Word 文档。

    创建一个 PictureWatermark 实例。

    使用 PictureWatermark.setPicture() 方法加载图像作为图像水印,然后使用 PictureWatermark.setScaling() 方法和 PictureWatermark.isWashout() 方法设置图像水印的缩放和冲洗属性。

    使用 Document.setWatermark() 方法将图像水印添加到示例文档中。

    使用 Document.saveToFile() 方法保存文件。

完整代码

Java

	import com.spire.doc.*;

public class WordImageWatermark { public static void main(String[] args) throws Exception{ //创建一个Document实例 Document document = new Document();
//加载示例 Word 文档 document.loadFromFile("AI创意赛.docx");
//创建一个 PictureWatermark 实例 PictureWatermark picture = new PictureWatermark();
//设置图像水印格式 picture.setPicture("印章.png"); picture.setScaling(100); picture.isWashout(false);
//将图像水印添加到示例文档中 document.setWatermark(picture);
//保存文件 document.saveToFile("添加图像水印.docx",FileFormat.Docx ); }}
复制代码

效果图

—本文完—

发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2022-06-02 加入

还未添加个人简介

评论

发布
暂无评论
如何通过Java代码给Word文档添加水印?_Java_在下毛毛雨_InfoQ写作社区