0
点赞
收藏
分享

微信扫一扫

Java: 为Word文档添加水印

素的盐 2022-08-23 阅读 62

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


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


安装Spire.Doc.Jar

方法一:

如果您使用的是 maven,可以通过添加以下代码到项目的文件中,将 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);

}
}

Java: 为Word文档添加水印_水印

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

  • 创建一个Document实例,并使用Document.loadFromFile()方法加载一个示例文档。
  • 使用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);

}
}

Java: 为Word文档添加水印_水印_02

为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 );
}
}

Java: 为Word文档添加水印_word_03

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

  • 创建一个Document实例,并使用Document.loadFromFile()方法加载一个示例文档。
  • 使用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 );
}
}

Java: 为Word文档添加水印_水印_04

举报

相关推荐

0 条评论