Word中設定水印效果時,不論是文字水印或者是圖片水印都只能新增單個文字或者圖片到Word頁面,效果比較單一,本文通過Java程式碼示例介紹如何在頁面中新增多行圖片水印效果,即水印效果以多個圖片平鋪到頁面。(新增多行文字水印效果,可以檢視這篇文章中的方法)
思路及方法:獲取Word頁首,新增圖片到頁首段落,並複製圖片。
程式環境:使用spire.doc.jar,版本:3.9.0
Java程式碼:
import com.spire.doc.*; import com.spire.doc.documents.Paragraph; import com.spire.doc.documents.TextWrappingStyle; import com.spire.doc.fields.DocPicture; public class ImageWatermark { public static void main(String[] args) { //載入Word文件 Document doc=new Document(); doc.loadFromFile("input.docx"); //載入圖片 DocPicture picture = new DocPicture(doc); picture.loadImage("logo.png"); picture.setTextWrappingStyle(TextWrappingStyle.Behind);//設定圖片環繞方式 //遍歷所有section for (int n = 0; n < doc.getSections().getCount(); n++) { Section section = doc.getSections().get(n); //獲取section的頁首 HeaderFooter header = section.getHeadersFooters().getHeader(); Paragraph paragrapg1; //獲取或新增段落 if(header.getParagraphs().getCount()>0) { paragrapg1 = header.getParagraphs().get(0); } else { paragrapg1 = header.addParagraph(); } //複製圖片,並新增圖片到段落 for (int p = 0; p < 4; p++) { for (int q = 0; q < 3; q++) { picture = (DocPicture)picture.deepClone(); picture.setVerticalPosition(50 + 150 * p); picture.setHorizontalPosition(10 + 140 * q); paragrapg1.getChildObjects().add(picture); } } } //儲存文件 doc.saveToFile("output.docx", FileFormat.Docx_2013); doc.dispose(); } }