分享

POI抽取word文档图片并保存

 太极混元天尊 2018-04-13


前言

最近公司有叫统计一些数据,我觉得太繁琐了就上网了解了一下poi,就用java处理了一下数据。今天我就通过它来做简单的抽取word文档中图片,并把图片另存在文件夹中。(刚了解POI,所以有什么不对,大家也可以一起来说说)。

简介

Apache POI 是一个很不错的组件,它主要用来 解析 microsoft word,ppt,excel,Visio 文档,通过它可以用java来操作word、excel等。

代码
package com.repair.user.impl;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.UUID;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.model.PicturesTable;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.hwpf.usermodel.Range;

public class readWordPicture {

 /**
  * @param args
  */

 public static void main(String[] args) {
   try {
     readPicture('E:/test1.doc');
   } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
 }
 //抽取图片
   private static void readPicture(String path)throws Exception{  
     FileInputStream in=new FileInputStream(new File(path));
     //这个构造函数从InputStream中加载Word文档。
     HWPFDocument doc=new HWPFDocument(in);
     //文档字符长度
     int length=doc.characterLength();  

     //负责图像提取 和 确定一些文件某块是否包含嵌入的图像。
     PicturesTable pTable=doc.getPicturesTable();  
     for (int i=0;i        //这个类为HWPF对象模型,对文档范围段操作
       Range range=new Range(i, i+1,doc);  

       //这个类表示一个文本运行,有着共同的属性。
       CharacterRun cr=range.getCharacterRun(0);  

       //是否存在图片
       if(pTable.hasPicture(cr)){  
         //返回图片对象绑定到指定的CharacterRun  
         Picture pic=pTable.extractPicture(cr, false);  
         //获取图片名称(包括后缀名)
         String afileName=pic.suggestFullFileName();  
         //创建图片指定的输出流。  
         OutputStream out=new FileOutputStream(new File('E:\\图片test\\'+UUID.randomUUID()+afileName));  
         //图片的内容字节写入到指定的输出流。
         pic.writeImageContent(out);  

       }
     }  

   }  
}
POI组件部分JAR下载链接

链接:https://pan.baidu.com/s/1oAkj1qU 

密码:lojy


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多