1. Tika是什么
Tika是Lucene的一个子项目。
Tika是一个集合,用于处理各种格式化的文档,如doc(x), xls(x), ppt(x), jpg, pdf, etc. 它本身的core可以自动判别文件类型(AutoDetectParser类),也定义了统一的接口(the parse interface),外部接挂了各种处理不同格式文档的parser实现(implementation)。
2. Tika安装向导
使用了Maven2的编译生成的Tika,其源码可以在
http://lucene.apache.org/tika/下到。不过默认不提供生成的jar档案,需要自己用Maven2生成。因此如果读者没配置过Maven2,还需要首先去
http://maven.apache.org/download.html下载Maven2,笔者当前使用的是Maven2.2.1。
2.1 安装Maven2
在Windows下,解压获得的apache-maven-2.x.x-bin.zip至你想要安置Maven2的目录,比如笔者解压至了"D:\Library\",那么D:\Library\apache-maven-2.2.1是Maven2的根目录
去配置名为M2_HOME的环境变量为上述路径;如果是2.0.9版本则需注意路径最后一个字符不能是'\';继续配置名为M2的环境变量为"%M2_HOME%\bin";可选配置则是MAVEN_OPTS,可以把JVM的内存选项填上去:-Xms256m -Xmx512m。最后在Path系统环境变量中添加%M2%一项。
如果还没有装JDK,当然需要把JDK给装上,并且设置了JAVA_HOME环境变量和Path环境变量中包括的%JAVA_HOME%\bin。
经过上述步骤,在cmd中键入mvn --version看看是否正确输出。
UNIX-like系统可以参考下载页的installation instructions,过程都差不多。
2.2 生成Tika目标文件
把Tika解压到某特定目录,比如笔者的D:\Library则根目录是D:\Library\tika-0.5。cmd进入该目录,执行mvn clean install,经过耐心等待,就可以在tika-core目录下发现新增了一个target目录,该目录下有一个jar文件tika-core-0.5.jar,这就是我们要的了。不过我们并未同时发现tika-app和tika-parsers下的对应jar,不过没关系,依葫芦画瓢,进入该二目录,各自执行mvn install,就可以得到各自的jar档案,分别是tika-app-0.5.jar和tika-parsers-0.5.jar。
上述三个jar文件,tika-core-0.5.jar(
附件下载)是tika的核心和接口,不包括parser实现,后者包含在tika-parsers-0.5.jar(
附件下载)中,各类文档的解析类,实现了core中定义的接口。至于tika-app-0.5.jar,则是可执行的jar。下文将给出使用方法。
3. 初步使用
无疑,作为一个程序(命令行)来使用是最直接最简单的。进入app的jar所在的目录,运行java -jar tika-app-0.5.jar -?看看都有哪些用法吧,这里就不全部介绍了。比如笔者随意拿了一个xls文档,运行java -jar tika-app-0.5.jar -t test.xls,就可以看到xls里的文本内容了,还是以类似表格方式列印在控制台的,中文也没有问题。
4. 程序调用
主要的接口类就是
org.apache.tika.parser.Parser的
void parse(InputStream stream, ContentHandler handler, Metadata metadata)throws IOException, SAXException, TikaException;
parser接受一个流作为文档输入,一个org.xml.sax.ContentHandler作为内容格式输出。parser默认使用XHTMLContentHandler来产生XHTML输出。但通常需要指定一个ContentHandler来生成所需要的输出。Tika已经为我们实现了一些ContentHandler类,比如BodyContentHandler用来提取XHTML输出的body部分,以填入SAX事件供另外的ContentHandler处理,或者给出提取字符至输出流、writer或字符串。
ContentHandler handler = new BodyContentHandler(System.out);
parser.parse(System.in, handler, ...);
以上片段使用系统标准输入作为文档,把提取的文本内容发至标准输出。
另一个有用的方式是使用ParsingReader,解析文档,返回文本内容的字符流:
InputStream stream = ...; // the document to be parsed
Reader reader = new ParsingReader(parser, stream, ...);
try {
...; // read the document text using the reader
} finally {
reader.close(); // the document stream is closed automatically
}
值得注意的是,maven生成的tika的jar包是有依赖于几个其他的包的,包括dom4j, xbeans, apache-poi, PDFBox等。在建立工程的时候需要引入相关的jar。
最后附一个可运行的简单Demo:
public class TikaDemo {
public static String PATH = "E:\\0104-0110工作计划.docx";
public static String OUTPATH = PATH+".OUT";
/**
* @param args
* @throws TikaException
* @throws SAXException
* @throws IOException
*/
public static void main(String[] args) throws IOException, SAXException, TikaException {
Parser parser = new OOXMLParser();
InputStream iStream = new BufferedInputStream(new FileInputStream(new File(PATH)));
OutputStream oStream = new BufferedOutputStream(new FileOutputStream(new File(OUTPATH)));
ContentHandler iHandler = new BodyContentHandler(oStream);
parser.parse(iStream, iHandler, new Metadata(), new ParseContext());
}
}
分享到:
相关推荐
在使用"tika0.5基本使用的jar包"时,开发者需要将jar包添加到项目类路径中,然后可以通过Tika的API来调用上述功能。例如,提取一个PDF文件的文本内容,可以使用以下代码示例: ```java import org.apache.tika.Tika...
下载Apache的tika项目时发现网上没有现成的tika的jar文件,只能自己编译一个了。可能大家也会遇到这个问题。所以将编译好的jar包传上来于大家...其中包含了tika-app-0.5.jar,tika-core-0.5.jar,tika-parsers-0.5.jar
Apache Tika 库的 Python 端口,可使用 Tika REST 服务器使 Tika 可用。这使得 Apache Tika 可作为 Python 库使用,可通过 Setuptools、Pip 进行安装,并且易于安装。要使用这个库,您需要在系统上安装 Java 7+,...
1. **MIME类型识别**:Tika通过使用Apache Tika-Mime库来识别文件的MIME类型,这是确定如何解析文件的关键步骤。MIME类型是一种标准,用来定义文件在网络上传输时的数据类型和格式。 2. **解析器架构**:Tika的解析...
下面将详细介绍Tika及其在处理不同文件类型时的关键知识点。 1. **Apache Tika的核心功能**: - **文本抽取**:Tika能够从各种文档中提取纯文本内容,这对于信息检索、文本分析或自然语言处理等任务非常有用。 - ...
Apache Tika本产品包括在以下位置开发的软件Apache软件基金会。版权所有1993-2010大学大气研究公司/ Unidata该软件包含源自UCAR / Unidata的NetCDF库的代码。Tika服务器组件使用CDDL许可的依赖项
在Java程序中,可以这样导入和使用Tika: ```java import org.apache.tika.Tika; import org.apache.tika.metadata.Metadata; import org.apache.tika.parser.ParseContext; import org.apache.tika.parser....
在本篇博文中,“跟益达学Solr5之使用Tika从PDF中提取数据导入索引”,我们将探讨如何利用Apache Solr 5和Tika这两个强大的开源工具,从PDF文档中抽取数据并将其有效地导入到Solr索引库中。Apache Solr是一款功能...
使用这个版本的Tika,开发者可以按照指定的依赖和配置将其集成到自己的Java项目中,以便处理和解析指定版本支持的文件格式。 总结起来,Apache Tika是Apache Lucene项目中的关键组件,它提供了一个统一的接口来解析...
英文Tika in Action Tika in Action to be a hands-on guide for developers working with search engines, content management systems, and other similar applications who want to exploit the information ...
这个名为“tika1.4.zip”的压缩包包含了Tika的1.4版本源代码,这对于开发者来说是一个宝贵的资源,可以深入理解其内部工作原理,解决在使用过程中遇到的问题。 Tika的主要功能是解析各种文件格式,包括但不限于PDF...
在"tika-app-1.20.jar"中,包含了完整的Tika应用,可以直接运行或在项目中作为依赖使用。 Apache Lucene则是一个高性能、全文本搜索库,提供了强大的索引和搜索功能。它允许开发者在Java应用程序中构建复杂的搜索...
Apache Tika 利用现有的解析类库,从不同格式的文档中(例如HTML, PDF, Doc),侦测和提取出元数据和结构化内容。... 该项目的目标使用群体主要为搜索引擎以及其他内容索引和分析工具。编程语言为Java.
4. `README.txt`或`README.md`: 项目介绍和指南,提供安装和使用Tika的基本信息。 5. `LICENSE`和`NOTICE`: Apache软件基金会的许可和通知文件,规定了Tika的使用许可和版权信息。 通过研究这些源代码,你可以了解...
Apache Tika 1.1 所需要的jar包,方便不想用maven的同学. 此压缩包内是核心jar包,依据http://tika.apache.org/1.1/gettingstarted.html 中Using Tika in an Ant project章节列出的 classpath 找齐 部分版本比文章中...
tika最新版本,tika-app-1.0.jar,提取office和pdf文档内容
在Python中使用tika-1.13,首先需要解压下载的".tar.gz"文件,这通常包含源代码、文档和其他相关资源。解压后,可以通过Python的setuptools或pip进行安装,以便在项目中使用。安装完成后,我们就可以通过导入`tika`...
Apache Tika是一款强大的内容检测和元数据提取工具,主要用于从各种文件类型中抽取文本和元数据。这个"apache-tika-0.8-src.jar"文件是Tika项目在0.8版本的源代码,它提供了深入理解Tika内部工作原理的机会,对于...