如何使用Tika从docx中提取文本

时间:2015-07-16 15:56:45

标签: java parsing docx apache-tika

我试图从docx中提取文本:tika-app做得很好,但是当我尝试在我的代码中做同样的事情时,结果是什么都没有,tika解析器说的内容类型为我的docx文件是" application / zip"。

我该怎么办?我应该使用递归方法(如this)还是有另一种方式?

更新:如果我将文件名添加到元数据中,则现在可以正确检测文件内容类型:

InputStream is =  new FileInputStream(myFile);
AutoDetectParser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
metadata.set(Metadata.RESOURCE_NAME_KEY, myFileFilename);
ParseContext context = new ParseContext();
context.set(Parser.class, parser);
parser.parse(is, handler, metadata, context);

无论如何在parse()我得到错误

  

java.lang.NoClassDefFoundError:org / apache / poi / openxml4j / exceptions / InvalidFormatException       在org.apache.tika.parser.microsoft.ooxml.OOXMLParser.parse(OOXMLParser.java:82)

1 个答案:

答案 0 :(得分:0)

对于我来说,Apache Tika中的主要令人困惑的事情是它可以在没有 tika-parsers.jar 的情况下进行编译,但它显然无法在没有它的情况下工作。因此,请确保您已安装 tika-parsers.jar 所有依赖项(它们很多)。