Tika 1.4 - 无法使其提取元数据或内容

时间:2014-01-21 23:59:31

标签: apache-tika

我在NetBeans IDE(Mac OSX上为7.4)中本地创建了一个小型java测试项目,以便从各种文件中提取内容和元数据。

我试图提取PDF,TXT和PPT,而我收到的唯一元数据是“Content-Type”。我已经尝试过InputStream和新的TikaInputStream,但到目前为止还没有成功。

我已经编译了Tika的1.4版本,并在项目中添加了tika-parsers-1.4.jar和tika-core-1.4.jar。

希望有人能发现明显的

    public static void TikaExtract(String fileName) throws Exception {

        TikaInputStream tikaStream = TikaInputStream.get(new File(fileName));

        ContentHandler textHandler = new BodyContentHandler();
        Metadata metadata = new Metadata();

        Parser parser = new AutoDetectParser();
        ParseContext context = new ParseContext();
        parser.parse(tikaStream, textHandler, metadata, context);

        //Check if there is anything in tikaStream
        out.println("File Length: " + tikaStream.getLength());

        out.println("Title: " + metadata.get("title"));
        out.println("Content type: " + metadata.get("Content-Type"));
        out.println("Author: " + metadata.get("Author"));
        out.println("content: " + textHandler.toString());

        System.out.println(tikaStream.toString());
        tikaStream.close();

}

上述代码的输出(data / sample.pdf作为输入)如下所示:

文件长度:730808

标题:null

内容类型:application / pdf

作者:null

含量:

data / sample.pdf的TikaInputStream

2 个答案:

答案 0 :(得分:0)

找到了一个可行的解决方案,虽然可能不是理想的解决方案。

将所有当前库(不使用Maven)替换为tika-server-1.4.jar

请随时发表评论。

答案 1 :(得分:0)

使用tika-server代替tika-core也解决了我的问题。我可以通过Grape使用Maven来做到这一点。

即,只需更换:

@Grab(group='org.apache.tika', module='tika-core', version='1.4')

使用:

@Grab(group='org.apache.tika', module='tika-server', version='1.4')

的工作。