Apache Tika:解析visio文件(.vsd)

时间:2013-01-17 22:53:59

标签: java apache visio apache-tika

我目前正在用Java编写一个程序来从多种文档类型中提取元数据。 目前我正在尝试使用Apache Tika从.vsd文件中提取元数据。 我以前尝试直接使用Apache POI,但事实是很难找到关于这个库中这个不可用部分的任何文档,所以我决定和Tika一起去。

好的,所以这里是我正在崩溃的代码示例(在第7行崩溃):

        ParseContext context = new ParseContext();
        Metadata metadata = new Metadata();
        WriteOutContentHandler handler = new WriteOutContentHandler(10 * 1024 * 1024);
try {
            FileInputStream fis = new FileInputStream(fileName);
            OfficeParser officeParser = new OfficeParser();
            officeParser.parse(fis, handler, metadata, context);
            String[] metadataNames = metadata.names();

            // Display all metadata
            for (String name : metadataNames) {
                System.out.println(name + ": " + metadata.get(name));
            }
        } catch (FileNotFoundException E) {
            System.out.println("No such files : " + fileName);
        }

这是堆栈跟踪:

  

线程“main”中的异常java.lang.RuntimeException:TODO at   org.apache.poi.hdgf.pointers.PointerFactory.createPointer(PointerFactory.java:45)     在org.apache.poi.hdgf.HDGFDiagram。(HDGFDiagram.java:99)at   org.apache.poi.hdgf.extractor.VisioTextExtractor。(VisioTextExtractor.java:55)     在   org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:200)     在   org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:161)     在VsdFile.displayMetadata(VsdFile.java:43)at   main.main(main.java:26)at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:601)at   com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

我在Java方面相当生疏,所以我希望我的问题不太明显,无法回答。

谢谢。

此致

Bdloul

1 个答案:

答案 0 :(得分:1)

所以问题是一个糟糕的vsd文件。