写点什么

Java: 为 Word 文档添加水印

作者:Geek_249eec
  • 2022 年 8 月 23 日
    新加坡
  • 本文字数:4133 字

    阅读完需:约 14 分钟

添加水印是文档操作中一个非常实用的功能,通过给文档添加指定文字或图片水印既可以标识文档的状态,也可以维护文档版权,丰富其外观。在这篇文章中,我将从以下四个板块介绍如何使用Free Spire.Doc for Java为 Word 文档添加水印。

 

 

安装 Spire.Doc.Jar

方法一:

如果您使用的是 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>


方法二:

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

 

为 Word 文档添加文本水印

 

  • 创建一个 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 Textwatermark { public static void main(String[] args) throws Exception {
//创建一个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("SingleWatermark.docx", FileFormat.Docx);
}}
复制代码


为 Word 文档添加多行文本水印

 

  • 创建一个 Document 实例,并使用 Document.loadFromFile()方法加载一个示例 Word 文档。

  • 使用 ShapeObject 确定艺术字形状,并设置其大小和样式。

  • 通过 HeaderFooter 类获取该节的页眉,然后使用 header.addParagraph()方法将段落添加到页眉中。

  • 复制艺术字形状,并使用 paragraph.getChildObjects().add(shape) 方法将其添加到多个位置。

  • 使用 Document.saveToFile()方法将文档保存到另一个文件。


import com.spire.doc.Document;import com.spire.doc.FileFormat;import com.spire.doc.HeaderFooter;import com.spire.doc.Section;import com.spire.doc.documents.Paragraph;import com.spire.doc.documents.ShapeLineStyle;import com.spire.doc.documents.ShapeType;import com.spire.doc.fields.ShapeObject;import java.awt.*;
public class MultipleTextwatermarks { public static void main(String[] args) throws Exception {
//加载一个Word示例文档 Document document = new Document(); document.loadFromFile("sample.docx");
//添加艺术字形状并设置其大小 ShapeObject shape = new ShapeObject(document, ShapeType.Text_Plain_Text); shape.setWidth(60); shape.setHeight(20);
//设置图案文本,位置和样式 shape.setVerticalPosition(40); shape.setHorizontalPosition(20); shape.setRotation(315); shape.getWordArt().setText("请勿复制"); shape.setFillColor(Color.red); shape.setLineStyle(ShapeLineStyle.Single); shape.setStrokeColor(new Color(245, 192, 192, 255)); shape.setStrokeWeight(1);
Section section; HeaderFooter header; for (int n = 0; n < document.getSections().getCount(); n++) { section = document.getSections().get(n); //获取该节的页眉 header = section.getHeadersFooters().getHeader(); Paragraph paragraph; for (int i = 0; i < 5; i++) { //添加段落到页眉中 paragraph = header.addParagraph(); for (int j = 0; j < 4; j++) { //复制艺术字形状并其添加到多个位置 shape = (ShapeObject) shape.deepClone(); shape.setVerticalPosition(50 + 150 * i); shape.setHorizontalPosition(20 + 160 * j); paragraph.getChildObjects().add(shape); } } } //将文档保存到另一个文件 document.saveToFile("Multiplewatermarks.docx", FileFormat.Docx_2013);
}}
复制代码


为 Word 文档添加图片水印

 

  • 创建一个 Document 实例,并使用 Document.loadFromFile()方法加载一个 Word 示例文档。

  • 创建 PictureWatermark 实例。

  • 使用 PictureWatermark.setPicture()方法加载图像作为图片水印,然后设置图片样式。

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

  • 使用 Document.saveToFile()方法将文档保存到另一个文件。


import com.spire.doc.*;
public class ImageWatermark { public static void main(String[] args){

//创建一个 Document 实例 Document document = new Document();
//加载一个Word示例文档 document.loadFromFile("sample.docx");
//创建PictureWatermark实例 PictureWatermark picture = new PictureWatermark();
//设置图片格式 picture.setPicture("logo.png"); picture.setScaling(150); picture.isWashout(false);
//将图片水印添加到示例文档 document.setWatermark(picture);
//保存结果文档 document.saveToFile("SingleImagewatermark.docx",FileFormat.Docx ); }}
复制代码


为 Word 文档添加多行图片水印

 

  • 创建一个 Document 实例,并使用 Document.loadFromFile()方法加载一个示例 Word 文档。

  • 使用 DocPicture.loadImage()方法加载图像。

  • 使用 picture.setTextWrappingStyle()方法设置图片的文本环绕样式。

  • 通过 HeaderFooter 类获取该节的页眉,然后使用 header.addParagraph()方法将段落添加到页眉中。

  • 复制图片并使用 paragraph.getChildObjects().add(image)方法将其添加到多个位置。

  • 使用 Document.saveToFile()方法将文档保存到另一个文件。

import com.spire.doc.Document;import com.spire.doc.FileFormat;import com.spire.doc.HeaderFooter;import com.spire.doc.Section;import com.spire.doc.documents.Paragraph;import com.spire.doc.documents.TextWrappingStyle;import com.spire.doc.fields.DocPicture;
public class MultipleImageWatermarks { public static void main(String[] args){
//创建一个 Document 实例 Document document = new Document();
//加载一个Word示例文档 document.loadFromFile("sample.docx");
//加载图片 DocPicture picture = new DocPicture(document); picture.loadImage("logo.png");
//设置文本环绕样式 picture.setTextWrappingStyle(TextWrappingStyle.Behind);
for (int n = 0; n < document.getSections().getCount(); n++) { Section section = document.getSections().get(n);
//获取该节的页眉 HeaderFooter header = section.getHeadersFooters().getHeader(); Paragraph paragraph; if(header.getParagraphs().getCount()>0){ paragraph=header.getParagraphs().get(0);
}else { //添加段落到页眉中 paragraph = header.addParagraph(); }
for (int p = 0; p < 5; p++) {
for (int q = 0; q < 4; q++) { //复制图片并添加到多个位置 picture = (DocPicture)picture.deepClone(); picture.setVerticalPosition(100 + 200 * p); picture.setHorizontalPosition(50 + 210 * q); paragraph.getChildObjects().add(picture); } } } //保存结果文档 document.saveToFile("MultipleImagewatermarks.docx",FileFormat.Docx ); } }
复制代码



用户头像

Geek_249eec

关注

还未添加个人签名 2022.07.13 加入

还未添加个人简介

评论

发布
暂无评论
Java: 为Word文档添加水印_Java_Geek_249eec_InfoQ写作社区