word的docx中的文字、图片替换说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,需要的jar:
2,替换docx文档的文字、图片实例
* 注意事项:
* word中的替换的文字replaceStr一定是从普通txt文本中粘贴过来的,这样才可以保证这些replaceStr的所有属性一致
* 才能保证这些replaceStr在同一个XWPFRun中。
public class WordTest2 {
String templatePathX = "D:/temp/打印样本/poi/打印样本.docx";
String savePath = "D:/temp/打印样本/poi/打印样本-temp.docx";
//image
String logoImagePath = "D:/temp/打印样本/forest_logo.png";
String IconImagePath = "D:/temp/打印样本/icon.jpg";
@Test
public void testDocx() {
try {
WordDocxUtil wordDocxUtil=new WordDocxUtil(templatePathX);
// ArrayList
// for(String replaceEle:replaceEles){
// System.out.println(replaceEle);
// }
//替换文字
// Map
// map.put("${orderId}", "B123123");
// map.put("${boxName}", "王五");
// map.put("${course-1}", "语文");
// map.put("${score}", "85");
// wordDocxUtil.replaceText(map);
//单个文字替换
// wordDocxUtil.replaceText("${course}", "语文");
//正则表达式文字替换
// wordDocxUtil.replaceTextByRegex("\\$\\{course-\\d\\}", "[-_-]");
//替换图片
// Map
// imageMap.put("width", "50");
// imageMap.put("height", "50");
// imageMap.put("imageType", WordDocxUtil.getSuffix(logoImagePath));
// imageMap.put("content", WordDocxUtil.inputStream2ByteArray(new FileInputStream(logoImagePath), true));
// wordDocxUtil.replaceImage("${forestLogo}", imageMap);
//
// imageMap = new HashMap
// imageMap.put("width", "50");
// imageMap.put("height", "50");
// imageMap.put("imageType", WordDocxUtil.getSuffix(IconImagePath));
// imageMap.put("content", WordDocxUtil.inputStream2ByteArray(new FileInputStream(IconImagePath), true));
// wordDocxUtil.replaceImage("${icon}", imageMap);
// setComboboxV alue("paytype", "1,3,5,6");
// setComboboxV alue("makeType", "aa,vv");
wordDocxUtil.save(savePath);
} catch (Exception e) {
e.printStackTrace();
}
}
}
2,导入docx文档的操作帮助类
package com.util;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.poi.POIXMLDocument;
import ermodel.UnderlinePatterns;
import ermodel.VerticalAlign;
import ermodel.XWPFDocument;
import ermodel.XWPFParagraph;
import ermodel.XWPFRun;
import ermodel.XWPFTable;
import ermodel.XWPFTableCell;
import ermodel.XWPFTableRow;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlToken;
import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps; import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;
/**
* @author longlin
* 注意事项:
* 1,替换的特殊文字replaceStr一定是从普通txt文本中粘贴过来的,这样才可以保证这些replaceStr的所有属性一致
* 才能保证这些replaceStr在同一个XWPFRun中。