From 95a6b388c455298664d08e8106eaf14a1a891d85 Mon Sep 17 00:00:00 2001 From: Mlin Date: Thu, 5 Jan 2023 15:34:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=BA=E5=91=98=E7=AE=80?= =?UTF-8?q?=E5=8E=86=E5=90=88=E5=B9=B6=E5=9B=BE=E7=89=87=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8820230105=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PersonnelResumeServiceImpl.java | 26 +++++++++++++++++++ .../organization/util/word/WordUtil.java | 1 - .../web/PersonnelResumeController.java | 3 --- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java b/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java index b842dea7..4b4ba3d6 100644 --- a/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java +++ b/src/com/engine/organization/service/impl/PersonnelResumeServiceImpl.java @@ -33,7 +33,9 @@ import com.engine.organization.util.tree.SearchTreeUtil; import com.engine.organization.util.word.CustomXWPFDocument; import com.engine.organization.util.word.WordUtil; import org.apache.commons.collections.CollectionUtils; +import org.apache.poi.xwpf.usermodel.Document; import org.apache.poi.xwpf.usermodel.XWPFParagraph; +import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.xmlbeans.XmlOptions; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody; import weaver.general.GCONST; @@ -315,6 +317,17 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu CustomXWPFDocument src2Document = doucDocument2; CTBody src2Body = src2Document.getDocument().getBody(); XWPFParagraph p2 = src2Document.createParagraph(); + + //处理合并后文档图片冲突 + List allPictures = src2Document.getAllPictures(); + Map map = new HashMap(); + for (XWPFPictureData picture : allPictures) { + String before = src2Document.getRelationId(picture); + //将原文档中的图片加入到目标文档中 + String after = src1Document.addPictureData(picture.getData(), Document.PICTURE_TYPE_JPEG); + map.put(before, after); + } + XmlOptions optionsOuter = new XmlOptions(); optionsOuter.setSaveOuter(); String appendString = src2Body.xmlText(optionsOuter); @@ -323,6 +336,19 @@ public class PersonnelResumeServiceImpl extends Service implements PersonnelResu String mainPart = srcString.substring(srcString.indexOf(">") + 1, srcString.lastIndexOf("<")); String sufix = srcString.substring(srcString.lastIndexOf("<")); String addPart = appendString.substring(appendString.indexOf(">") + 1, appendString.lastIndexOf("<")); + if (map != null && !map.isEmpty()) { + ListIterator> i = new ArrayList<>(map.entrySet()).listIterator(map.size()); + LinkedHashMap linkedHashMap = new LinkedHashMap(); + while (i.hasPrevious()) { + Map.Entry entry = i.previous(); + linkedHashMap.put(entry.getKey(), entry.getValue()); + } + Iterator it1 = linkedHashMap.entrySet().iterator(); + while (it1.hasNext()) { + Map.Entry entry = (Map.Entry) it1.next(); + addPart = addPart.replace("