我用的是poi操作worddocx中的数学公式,现在遇到点问题如何将图片插入了最后一行,我如何将他替换到我指定的位置呢

街头诗人1 2017-08-09 02:45:36
//获取word文件
InputStream is = new FileInputStream("D:\\公式测试.docx");
//创建word文件对象
CustomXWPFDocument doc = new CustomXWPFDocument(is);
//获取图片中的所有图片
List<XWPFPictureData> pictures= doc.getAllPictures();

//通过时间确定文件夹的名称
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
String dateNowStr = sdf.format(d);
//指定存放wmf公式的目录
String path="D:\\image\\"+dateNowStr;
for(int i=0;i<pictures.size();i++){
//获取第i个图片
XWPFPictureData pic=pictures.get(i);
//判断是否是公式
if(pic.getFileName().endsWith(".wmf")){
//String rId=doc.getAllPictures().get(i).getPackageRelationship().getId();
//System.out.println(rId);
//图片的位置
String imgPath=path+"\\"+pic.getFileName();
//创建文件
File dir = new File(path);
//如果公式目录不存在
if (!dir.exists()) {
//创建目录
dir.mkdirs();
}
//获取公式的字节
byte[] bytev = pic.getData();
//创建输出流
FileOutputStream fos = new FileOutputStream(imgPath);
//写公式
fos.write(bytev);
//调用wmf转png的方法
WmfToPng.convert(imgPath);
//获取图片的id
String picId = doc.addPictureData(new FileInputStream(imgPath), XWPFDocument.PICTURE_TYPE_PNG);
//添加图片
doc.createPicture(picId, doc.getNextPicNameNumber(XWPFDocument.PICTURE_TYPE_PNG), 600, 150);
//doc.getPackagePart().removeRelationship(rId);
//doc.getPackagePart().addRelationship(doc.getRelationById(picId).getPackageRelationship().getTargetURI(), TargetMode.INTERNAL, XWPFRelation.IMAGES.getRelation(), rId);
}

}
FileOutputStream fos=new FileOutputStream("D:\\公式测试.docx");
doc.write(fos);
fos.flush();
fos.close();
}
...全文
769 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shixieshenjian 2018-03-28
  • 打赏
  • 举报
回复
getAllPictures().get(id).getPackageRelationship().getId();的getPackageRelationship()不报错吗,为什么我的报错,我参考的网址是https://blog.csdn.net/zhu_nana/article/details/78662851
代码的味道 2017-08-10
  • 打赏
  • 举报
回复
顶一下啊!!!!!!
街头诗人1 2017-08-10
  • 打赏
  • 举报
回复
大神们求助啊!!!!!!
街头诗人1 2017-08-09
  • 打赏
  • 举报
回复
急求啊。可以加分的啊!!!!!!
街头诗人1 2017-08-09
  • 打赏
  • 举报
回复
我现在是将图片插入了最后一行,怎么替换到他公式的地方呢,就是指定替换图片
街头诗人1 2017-08-09
  • 打赏
  • 举报
回复
我看老外有的是通过解析xml来做的,不知道老哥们能否指点一二

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧