1.本来有其他⽅法可以实现的,但是由于jar包⼀直有问题所以换了种,要是还有其他的更好的⽅法,希望可以讨论2.废话不说直接上代码;
3.我⾃⼰加了个⽣成图⽚的⽅法,也可以不需要直接⽤已经存在的图⽚替换即可 ,注意jar包的引⼊,import的时候看清楚是什么包!!!先给出MAVEN中pom.xml需要导⼊的包
package com.example.demo;import java.awt.*;import java.io.File;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;
import java.text.DecimalFormat;import java.text.NumberFormat;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;
import org.apache.commons.io.IOUtils;import org.apache.poi.POIXMLDocument;import org.docx4j.wml.Document;
import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;import org.assertj.core.util.Maps;import org.docx4j.TraversalUtil;
import org.docx4j.dml.wordprocessingDrawing.Inline;import org.docx4j.finders.RangeFinder;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;import org.docx4j.wml.*;
import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
public class ReplaceWordUtils { //模板路径
public static final String DOC_PATH = \"D:\\\\report\\\est.docx\"; //图⽚路径
public static final String IMAGE_PATH = \"D:\\\\report\\\est.png\"; //替换⽂字图⽚后的路径
public static final String DOC_PATH2 = \"D:\\\\report\\\est1.docx\";
//word⽂档中替换⽂字⽅法
public static void replaceContent(Map document = new XWPFDocument(POIXMLDocument.openPackage(wordPath)); Iterator XWPFParagraph paragraph = (XWPFParagraph) itPara.next(); List String oneparaString = runs.get(i).getText(runs.get(i).getTextPosition()); for (Map.Entry oneparaString = oneparaString.replace(entry.getKey(), entry.getValue()); } } runs.get(i).setText(oneparaString, 0); } } FileOutputStream outStream = null; outStream = new FileOutputStream(DOC_PATH2); document.write(outStream); outStream.close(); } catch (Exception e) { e.printStackTrace(); } } public static void replaceImage(){ //-----------------------------------插⼊图⽚--------------------------------------- File file = new File(IMAGE_PATH); try { File file2 = new File(DOC_PATH2); WordprocessingMLPackage wPackage = WordprocessingMLPackage.load(new FileInputStream(file2)); MainDocumentPart mainDocumentPart = wPackage.getMainDocumentPart(); Document wmlDoc = (Document) mainDocumentPart.getJaxbElement(); Body body = wmlDoc.getBody(); // 提取正⽂中所有段落 List
Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务