package msReader; import java.io.File; import java.util.*; import com.jacob.com.*; import com.jacob.activeX.*; public class Word2html { /** * @param args */ public static void main(String[] args) { String from=""; String to="D://try//"+new Date().getTime()+".html"; System.out.println(word2html(from,to)); } /** * 利用activeX的dll来用office-word转换word文档到html * <br>毫无疑问,这是种劣质的方式. * * @param docPath Word文档的路径 * @param htmlPath 生成的html文件的路径 * @returns 成功返回生成的html文件的路径,失败,返回null; * */ public static String word2html(String docPath,String htmlPath){ //关键activeX对象 ActiveXComponent app=new ActiveXComponent("Word.application"); try{ File html=new File(htmlPath); app.setProperty("Visible",new Variant(false)); Dispatch docs=app.getProperty("Documents").toDispatch(); Dispatch doc=Dispatch.invoke( docs,"Open",Dispatch.Method,new Object[]{docPath,new Variant(false),new Variant(true)},new int[1]).toDispatch(); Dispatch.invoke( doc,"SaveAs",Dispatch.Method,new Object[]{html.getAbsolutePath(),new Variant(8)},new int[1]); Variant f=new Variant(false); Dispatch.call(docs, "Close",f); return html.getAbsolutePath(); } catch(Exception e){ return null; } finally { app.invoke("Quit", new Variant[] {}); } } } package msReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.textmining.text.extraction.WordExtractor; public class WordReader { public static void main(String[] args) { System.out.println(readWordText("D://java//book//j2ee//JSPServlet//jsp 实用教程(第二版)程序源代码.doc")); } /** * 利用纯java方式--poi项目的WordExtractor类,解析得到word文件中所有的文字 * <br>但是很可惜,poi项目现在处于停滞状态,它的功能非常有限s * @param fileName doc文件名称 * @return word中所有的文字 * * */ public static String readWordText(String fileName){ InputStream in=null; try{ in=new FileInputStream(fileName); WordExtractor wordExtractor=new WordExtractor(); return wordExtractor.extractText(in); } catch(Exception e){ e.printStackTrace(); } finally{ try { in.close(); } catch (IOException e) {} } return null; } } package msReader; import java.io.*; public class TestDocWriter { public static void main(String[] args) { try{ String str="我就不行了的撒倒萨"; write("D:/try/wordAndRtf/a.doc",str); print("D:/try/wordAndRtf/b.doc"); } catch(Exception e){ e.printStackTrace(); } } public static void write(String fileName,String str)throws Exception { File file=new File(fileName); if(!file.exists()){ file.createNewFile(); } FileInputStream fis=new FileInputStream(file); FileOutputStream fos=new FileOutputStream(file); fos.write(str.getBytes()); System.out.println("向"+fileName+"/r写入/r"+str); } public static void print(String fileName)throws Exception{ File file=new File(fileName); if(!file.exists()){ file.createNewFile(); } FileInputStream fis=new FileInputStream(file); byte[] b=new byte[120202]; while(fis.read()!=-1){ fis.read(b); System.out.println(new String(b)); } } }