我试图从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)
答案 0 :(得分:0)
对于我来说,Apache Tika中的主要令人困惑的事情是它可以在没有 tika-parsers.jar 的情况下进行编译,但它显然无法在没有它的情况下工作。因此,请确保您已安装 tika-parsers.jar 所有依赖项(它们很多)。