Java实现为Word每一页设置不同图片水印的效果

  • 格式:pdf
  • 大小:218.64 KB
  • 文档页数:3

Java实现为Word每⼀页设置不同图⽚⽔印的效果⽬录⽅法思路

Jar引⼊

Java代码⽰例代码补充

Word中设置⽔印时,可加载图⽚设置为⽔印效果,但通常添加⽔印效果时,会对所有页⾯都设置成统⼀效果,如果需要对每

⼀页或者某个页⾯设置不同的⽔印效果,则可以参考本⽂中的⽅法。下⾯,将以Java代码为例,对Word每⼀页设置不同的图

⽚⽔印效果作详细介绍。

⽅法思路

在给Word每⼀页添加⽔印前,⾸先需要在Word⽂档每⼀页正⽂的最后⼀个字符后⾯插⼊“连续”分节符,然后在每⼀节的页眉

段落⾥添加⽔印图⽚,并设置图⽚的坐标位置、对齐⽅式、衬与⽂字下⽅等。最后保存⽂档。

Jar引⼊

在程序中引⼊ 中的Spire.Doc.jar⽂件(该⽂件在lib⽂件夹下);如果需要通过 下载导⼊,可进⾏如下配置pom.xml:

com.e-iceblue

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

e-iceblue

spire.doc.free

5.1.0

Java代码给每页添加图⽚⽔印时,可参考如下步骤:

创建Document类的对象,并通过Document.loadFromFile(String fileName)⽅法加载Word⽂档。

通过Document.getSections().get(int index)⽅法获取指定节。

通过Section.getHeadersFooters().getHeader()⽅法获取页眉,HeaderFooter.addParagraph()⽅法添加段落到页眉。

通过Paragraph.appendPicture(String filePath)⽅法添加图⽚到段落,DocPicture.setVerticalPosition(float value)⽅法设

置⽔印图⽚位置,DocPicture.setHorizontalAlignment(ShapeHorizontalAlignment value)⽅法设置图⽚对齐⽅式。

最后,通过Document.saveToFile(String fileName, FileFormat fileFormat)⽅法保存⽂档。

不同页⾯中设置不⼀样的图⽚⽔印效果,只需要获取该页⾯对应的节,然后参考上述⽤到的⽅法来添加即可。

⽰例代码

import com.spire.doc.*;

import com.spire.doc.documents.Paragraph;

import com.spire.doc.documents.TextWrappingStyle;

import com.spire.doc.fields.DocPicture;

public class DifferentImageWatermark {

public static void main(String[] args) {

//加载Word测试⽂档

Document doc = new Document();

doc.loadFromFile("test.docx");

//获取⽂档第⼀节

Section section1 = doc.getSections().get(0); //定义⽔印图⽚的纵向坐标位置

float y = (float) (section1.getPageSetup().getPageSize().getHeight()/3);

//添加图⽚⽔印1

HeaderFooter header1 = section1.getHeadersFooters().getHeader();//获取页眉

header1.getParagraphs().clear();//删除原有页眉格式的段落

Paragraph para1= header1.addParagraph();//重新添加段落

DocPicture pic1 = para1.appendPicture("logo1.png");//加载图⽚

pic1.setTextWrappingStyle(TextWrappingStyle.Behind);//图⽚置于⽂字下⽅

pic1.setVerticalPosition(y);

pic1.setHorizontalAlignment(ShapeHorizontalAlignment.Center);//设置图⽚对齐⽅式

//同理设置第⼆节页眉中的图⽚⽔印2

Section section2 = doc.getSections().get(1);

HeaderFooter header2 = section2.getHeadersFooters().getHeader();

header2.getParagraphs().clear();

Paragraph para2= header2.addParagraph();

DocPicture pic2 = para2.appendPicture("logo2.png");

pic2.setTextWrappingStyle(TextWrappingStyle.Behind);

pic2.setVerticalPosition(y);

pic2.setHorizontalAlignment(ShapeHorizontalAlignment.Center);

//同理设置第三节中的页眉中的图⽚⽔印3

Section section3 = doc.getSections().get(2);

HeaderFooter header3 = section3.getHeadersFooters().getHeader();

header3.getParagraphs().clear();

Paragraph para3= header3.addParagraph();

DocPicture pic3 = para3.appendPicture("logo3.png");

pic3.setTextWrappingStyle(TextWrappingStyle.Behind);

pic3.setVerticalPosition(y);

pic3.setHorizontalAlignment(ShapeHorizontalAlignment.Center);

//保存⽂档

doc.saveToFile("DifferentImageWatermark.docx",FileFormat.Docx_2013);

doc.dispose();

}

}如图,每⼀页均可显⽰不同的图⽚⽔印效果:

补充

当然Java还可以实现为Word添加⽂字或图⽚⽔印,下⾯的实现代码

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

}

}

到此这篇关于Java实现为Word每⼀页设置不同图⽚⽔印的效果的⽂章就介绍到这了,更多相关Java Word⽔印内容请搜索以前

的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!