尝试tika
Apache Tika 是一个内容分析抽取的工具集。
它使用存在解析库,从各种类型的文档自动检测、抽取元数据和结构化文本内容。
特点:
1、自动判断文件类型, 如doc(x),xls(x),ppt,pdf,jpg等
2、提供统一的解析接口
3、各种解析库插件化
1、安装
下载源代码:http://tika.apache.org/download.html,目前提供0.7 版源代码下载。
以maven 项目组织的。
使用maven构建 : mvn package
构建成功后,生成相应jar包:
tika-core-0.7.jar
tika-parsers-0.7.jar
tika-app-0.7.jar
tika-bundle-0.7.jar
2、示例
新建一个sbt工程,将以上4个包放入lib目录下
scala源代码:
import java.io._
import org.apache.tika.metadata.Metadata
import org.apache.tika.parser.ParseContext
//import org.apache.tika.parser.Parser
//import org.apache.tika.parser.html.HtmlParser
import org.apache.tika.parser.microsoft.OfficeParser;
//import org.apache.tika.parser.pdf.PDFParser
import org.apache.tika.sax.BodyContentHandler
import org.xml.sax.ContentHandler
object TikaDemo {
val PATH = """E:\0704.docx""";
val OUTPATH = PATH+".txt";
def main(args: Array[String]) {
val in = new BufferedInputStream(new FileInputStream(new File(PATH)))
val parser = new OfficeParser()
val out = new BufferedOutputStream(new FileOutputStream(new File(OUTPATH)))
val iHandler = new BodyContentHandler(out)
try{
parser.parse(in, iHandler, new Metadata(),new ParseContext())
}catch{
case e => e.printStackTrace
}finally{
in.close()
out.close()
}
}
}
执行成功后, 同一目录下多了一个txt文件,文件内容就是word文档的文本内容
3、下一步
需要了解ContentHandler相关的内容,如何抽取可定制的内容
它使用存在解析库,从各种类型的文档自动检测、抽取元数据和结构化文本内容。
特点:
1、自动判断文件类型, 如doc(x),xls(x),ppt,pdf,jpg等
2、提供统一的解析接口
3、各种解析库插件化
1、安装
下载源代码:http://tika.apache.org/download.html,目前提供0.7 版源代码下载。
以maven 项目组织的。
使用maven构建 : mvn package
构建成功后,生成相应jar包:
tika-core-0.7.jar
tika-parsers-0.7.jar
tika-app-0.7.jar
tika-bundle-0.7.jar
2、示例
新建一个sbt工程,将以上4个包放入lib目录下
scala源代码:
import java.io._
import org.apache.tika.metadata.Metadata
import org.apache.tika.parser.ParseContext
//import org.apache.tika.parser.Parser
//import org.apache.tika.parser.html.HtmlParser
import org.apache.tika.parser.microsoft.OfficeParser;
//import org.apache.tika.parser.pdf.PDFParser
import org.apache.tika.sax.BodyContentHandler
import org.xml.sax.ContentHandler
object TikaDemo {
val PATH = """E:\0704.docx""";
val OUTPATH = PATH+".txt";
def main(args: Array[String]) {
val in = new BufferedInputStream(new FileInputStream(new File(PATH)))
val parser = new OfficeParser()
val out = new BufferedOutputStream(new FileOutputStream(new File(OUTPATH)))
val iHandler = new BodyContentHandler(out)
try{
parser.parse(in, iHandler, new Metadata(),new ParseContext())
}catch{
case e => e.printStackTrace
}finally{
in.close()
out.close()
}
}
}
执行成功后, 同一目录下多了一个txt文件,文件内容就是word文档的文本内容
3、下一步
需要了解ContentHandler相关的内容,如何抽取可定制的内容