Java如何实现Word文档中插入多行图片水印?

2026-04-19 20:191阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计616个文字,预计阅读时间需要3分钟。

Java如何实现Word文档中插入多行图片水印?

在Word中设置水印效果时,无论是文本水印还是图片水印,都只能添加单个文字或图片到Word页面,效果比较单一。下面通过Java代码示例介绍如何在页面中添加多行图片水印效果。

javaimport org.apache.poi.xwpf.usermodel.*;import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;import java.io.IOException;

public class WatermarkExample { public static void main(String[] args) throws IOException { XWPFDocument document=new XWPFDocument(); XWPFParagraph paragraph=document.createParagraph(); XWPFRun run=paragraph.createRun();

// 设置水印图片 String watermarkPath=path/to/watermark.jpg; XWPFParagraph watermarkPara=document.createParagraph(); XWPFRun watermarkRun=watermarkPara.createRun(); watermarkRun.addPicture(new FileInputStream(watermarkPath), XWPFDocument.PICTURE_TYPE_JPEG, watermark.jpg, Units.toEMU(100), Units.toEMU(100));

// 添加多行文本到水印图片下方 String[] texts={第一行文本, 第二行文本, 第三行文本}; for (String text : texts) { paragraph=document.createParagraph(); run=paragraph.createRun(); run.setText(text); }

// 将水印图片设置为背景 document.addBackgroundPicture(watermarkPath);

// 保存文档 try (FileOutputStream out=new FileOutputStream(output.docx)) { document.write(out); }

Java如何实现Word文档中插入多行图片水印?

System.out.println(文档已生成!); }}

这段代码使用Apache POI库创建了一个Word文档,并添加了多行文本和一个图片水印。图片水印设置为背景,多行文本位于图片下方。保存文档后,可以在输出目录中找到名为`output.docx`的文件。

Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行图片水印效果,即水印效果以多个图片平铺到页面。(添加多行文字水印效果,可以查看这篇文章中的方法)

程序环境:使用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(); } }

到此这篇关于Java在Word中添加多行图片水印的文章就介绍到这了,更多相关Java添加图片水印内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计616个文字,预计阅读时间需要3分钟。

Java如何实现Word文档中插入多行图片水印?

在Word中设置水印效果时,无论是文本水印还是图片水印,都只能添加单个文字或图片到Word页面,效果比较单一。下面通过Java代码示例介绍如何在页面中添加多行图片水印效果。

javaimport org.apache.poi.xwpf.usermodel.*;import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;import java.io.IOException;

public class WatermarkExample { public static void main(String[] args) throws IOException { XWPFDocument document=new XWPFDocument(); XWPFParagraph paragraph=document.createParagraph(); XWPFRun run=paragraph.createRun();

// 设置水印图片 String watermarkPath=path/to/watermark.jpg; XWPFParagraph watermarkPara=document.createParagraph(); XWPFRun watermarkRun=watermarkPara.createRun(); watermarkRun.addPicture(new FileInputStream(watermarkPath), XWPFDocument.PICTURE_TYPE_JPEG, watermark.jpg, Units.toEMU(100), Units.toEMU(100));

// 添加多行文本到水印图片下方 String[] texts={第一行文本, 第二行文本, 第三行文本}; for (String text : texts) { paragraph=document.createParagraph(); run=paragraph.createRun(); run.setText(text); }

// 将水印图片设置为背景 document.addBackgroundPicture(watermarkPath);

// 保存文档 try (FileOutputStream out=new FileOutputStream(output.docx)) { document.write(out); }

Java如何实现Word文档中插入多行图片水印?

System.out.println(文档已生成!); }}

这段代码使用Apache POI库创建了一个Word文档,并添加了多行文本和一个图片水印。图片水印设置为背景,多行文本位于图片下方。保存文档后,可以在输出目录中找到名为`output.docx`的文件。

Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行图片水印效果,即水印效果以多个图片平铺到页面。(添加多行文字水印效果,可以查看这篇文章中的方法)

程序环境:使用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(); } }

到此这篇关于Java在Word中添加多行图片水印的文章就介绍到这了,更多相关Java添加图片水印内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!