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⽔印内容请搜索以前
的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!