如题:
现想将一个个人简历导出doc格式的word文档,但是简历中的照片一直导不出,执行导出的是PoiHwpfExtractContentImpl,求各位解答
/**
- 获取 word 文档里面所有图片并另存到指定目录下
- @param doc Document 对象
- @param picPath 保存图片路径
- @param suffix 后缀名 */ public void getPictures(HWPFDocument doc, String picPath, String suffix) { Range range = doc.getRange(); byte[] dataStream = doc.getDataStream(); int numChar = range.numCharacterRuns(); PicturesTable pTable = new PicturesTable(doc, dataStream, dataStream); for (int i = 0; i < numChar; ++i) { CharacterRun cuRun = range.getCharacterRun(i); boolean hasPic = pTable.hasPicture(cuRun); if (hasPic) { Picture picture = pTable.extractPicture(cuRun, true); try { picture.writeImageContent(new FileOutputStream(picPath + i + suffix)); } catch (Exception e) { e.printStackTrace(); } } } }
/**
- 获取 word 文档里面所有图片并另存到指定目录下
- @param docx Document 对象
- @param picPath 保存图片路径
- @param suffix 后缀名 */ public void getPictures(XWPFDocument docx, String picPath, String suffix){ List wpdList = docx.getAllPictures(); if(wpdList != null && wpdList.size() > 0){ for (int i = 0; i < wpdList.size(); i++) { byte[] picByte = wpdList.get(i).getData(); //获取图片数据流 FileOutputStream fos = null; try { fos = new FileOutputStream(picPath + i + suffix); } catch (FileNotFoundException e) { e.printStackTrace(); }finally{ try { fos.write(picByte); } catch (IOException e) { e.printStackTrace(); } } } } }
和我的问题类似 我的不报错 可以正常导出doc word 但是图片在write的时候会写入丢失 不知道什么鬼 导致导出的word图片是一个默认的叉。
上面那哥们写的格式弄不太清楚
但我看最后有写picture.writeImageContent,
这个可以用来把里面的图片保存下来
我存下来是ok的 只是在write的时候会丢失图片