基于tm-extractor的Word解析

基于tm-extractor的Word解析

 

1.       环境

2.       简介

3.       Helloworld

难度:入门

作者:曹祺

Email:[email protected]

Blog:http://blogs.sun.com/greysh

源代码下载

 http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Word.zip  

开发环境

Netbeans6.5

tm-extractors0.4版本不需要apachepoi包,因为里面已经整合了

tm-extractors1.0版本需要poi-3.0.1-FINAL-20070705.jar,版本一定要正确

tm-extractors官方网站

http://www.textmining.org/

SVN源代码:http://code.google.com/p/text-mining/source/browse/

Apache POI工程

http://poi.apache.org

 

 

简介

对于Javaword解析,主流方法是用中间件去访问,但是需要用JNI

Apache和微软合作,开发的POI,但是POI虽然功能强大,但是用起来也很麻烦

3.5版本和以前的3.0版本修改了很多,而且还没稳定下来。

对于一班的应用,例如类似QQ手机邮箱那样,仅仅只需要读出文本内容的话,我们可以直接用tm-extractors,当然它底层也是调用的Apache POI

 

Helloworld

对于0.4版本代码如下

package com.greysh.word;

/**

 * @author Genix.Cao

 */

import java.io.File;

import java.io.FileInputStream;

import org.textmining.text.extraction.WordExtractor;

public class WordUtils {

 public static String readDoc(String doc) throws Exception {

  FileInputStream in = new FileInputStream(new File(doc));

   WordExtractor extractor = new WordExtractor();

  String text = extractor.extractText(in);

  return text;

 }

 public static void main(String[] args) throws Exception {

         String text = WordUtils.readDoc("D:/1.doc");

         System.out.println(text);

 }

}

 

对于1.0版本

package com.greysh.word;

/**

 * @author Genix.Cao

 */

import java.io.File;

import java.io.FileInputStream;

import org.textmining.extraction.word.WordTextExtractorFactory;

public class WordUtils {

 

 public static String readDoc(String doc) throws Exception {

  FileInputStream in = new FileInputStream(new File(doc));

  WordTextExtractorFactory extractor = new WordTextExtractorFactory();

  String text = extractor.textExtractor(in).getText();

  return text;

 }

 public static void main(String[] args) {

        try{

         String text = WordUtils.readDoc("D:/1.doc");

         System.out.println(text);

        }catch(Exception ex){

         ex.printStackTrace();

        }

 }

}

 

注意:使用此代码的时候,记得修改word文件的路径和POI的版本

POI 3.5有些函数改变了,直接用会保异常

org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;

详情可以查看邮件列表

http://markmail.org/message/fla67r6kisrukom2#query:+page:1+mid:fla67r6kisrukom2+state:results(网址如果变了,请用邮件列表的搜索功能)

另外1.00.4相比,对于不同的Word版本有不同的策略,目前很多项目还是使用的0.4的版本

1.0采用的是LPGL的发布协议

得到文件流后用WordTextExtractorFactory去进行解析

你可能感兴趣的:(apache,exception,String,File,Class,Netbeans)