wordToHtml

package com.dfec.bm.util;


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;


import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;


import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.w3c.dom.Document;


public class WordToHtml {
/**
* @param args
* @throws IOException
* @throws ParserConfigurationException
* @throws TransformerException
*/
/** 
*  
*/  
 

 
   public static void main(String argv[]) {  
       try {  
           convert2Html("D://1.doc","D://1.html");  
       } catch (Exception e) {  
           e.printStackTrace();  
       }  
   }  
 
   public static void writeFile(String content, String path) {  
       FileOutputStream fos = null;  
       BufferedWriter bw = null;  
       try {  
           File file = new File(path);  
           fos = new FileOutputStream(file);  
           bw = new BufferedWriter(new OutputStreamWriter(fos,"utf-8"));  
           bw.write(content);  
       } catch (FileNotFoundException fnfe) {  
           fnfe.printStackTrace();  
       } catch (IOException ioe) {  
           ioe.printStackTrace();  
       } finally {  
           try {  
               if (bw != null)  
                   bw.close();  
               if (fos != null)  
                   fos.close();  
           } catch (IOException ie) {  
           }  
       }  
   }  
 
   public static void convert2Html(String fileName, String outPutFile)  
           throws TransformerException, IOException,  
           ParserConfigurationException {  
       HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(fileName));//WordToHtmlUtils.loadDoc(new FileInputStream(inputFile));  
       WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(  
               DocumentBuilderFactory.newInstance().newDocumentBuilder()  
                       .newDocument());  
        wordToHtmlConverter.setPicturesManager( new PicturesManager()  
        {  
            public String savePicture( byte[] content,  
                    PictureType pictureType, String suggestedName,  
                    float widthInches, float heightInches )  
            {  
                return suggestedName;  
            }  
        } );  
       wordToHtmlConverter.processDocument(wordDocument);  
       //save pictures  
       List pics=wordDocument.getPicturesTable().getAllPictures();  
       if(pics!=null){  
           for(int i=0;i<pics.size();i++){  
               Picture pic = (Picture)pics.get(i);  
               System.out.println();  
               try {  
                   pic.writeImageContent(new FileOutputStream("D:/"  
                           + pic.suggestFullFileName()));  
               } catch (FileNotFoundException e) {  
                   e.printStackTrace();  
               }    
           }  
       }  
       Document htmlDocument = wordToHtmlConverter.getDocument();  
       ByteArrayOutputStream out = new ByteArrayOutputStream();  
       DOMSource domSource = new DOMSource(htmlDocument);  
       StreamResult streamResult = new StreamResult(out);  
 
       TransformerFactory tf = TransformerFactory.newInstance();  
       Transformer serializer = tf.newTransformer();  
       serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");  
       serializer.setOutputProperty(OutputKeys.INDENT, "yes");  
       serializer.setOutputProperty(OutputKeys.METHOD, "html");  
       serializer.transform(domSource, streamResult);  
       out.close();  
       writeFile(new String(out.toByteArray()), outPutFile);  
   }  
}  



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值