【问题标题】:How to extract the text of a .ppt file with tika?如何使用 tika 提取 .ppt 文件的文本?
【发布时间】:2013-02-04 21:55:47
【问题描述】:

我使用AutoDetectParser 类提取了带有tika 的.pdf 文件的文本。但是当我使用相同的代码提取 .ppt 文件的文本时,它会引发异常。怎么做? 谢谢

编辑:
我使用的代码是:

File file = new File("1.ppt");
InputStream input = new FileInputStream(file);
Parser autoDetectParser = new AutoDetectParser();
Metadata metadata = new Metadata();
StringWriter writer = new StringWriter();
ContentHandler handler = new WriteOutContentHandler(writer);
autoDetectParser.parse(input, handler, metadata, new ParseContext());

例外是:

java.lang.NoSuchFieldError: SMALLER_BIG_BLOCK_SIZE_DETAILS
at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:93)
at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:190)
at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:184)
at org.apache.tika.parser.microsoft.POIFSContainerDetector.getTopLevelNames(POIFSContainerDetector.java:371)
at org.apache.tika.parser.microsoft.POIFSContainerDetector.detect(POIFSContainerDetector.java:165)
at org.apache.tika.detect.CompositeDetector.detect(CompositeDetector.java:61)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:113)
at ppt.PPTParserTest.test3(PPTParserTest.java:52)

我发现问题是由我的classpath 中的一些额外jars 引起的。

【问题讨论】:

  • 我用过AutoDetectParser类的parse()方法,像这样的参数:autoDetectParser.parse(inputStream, contentHandler, metadata);
  • 有什么例外?
  • @theJollySin 谢谢,问题解决了。
  • 你能分享一下有哪些额外的 jars 相互冲突,以启发其他人解决这个问题吗?
  • @computermacgyver 这个问题发生在两个月前,但我认为这两个库中的一个(或者可能两个)导致了问题:1.poi-3.1-FINAL.jar 和 2 .poi-scratchpad-3.1-FINAL.jar

标签: java apache-tika text-extraction


【解决方案1】:

如果您的运行时类路径中有两个不同版本的 POI,则可能会发生此异常。 在较新版本的 POI 中,NPOIFSFileSystem 引用 POIFSConstants.SMALLER_BIG_BLOCK_SIZE_DETAILS。此常量在旧版本的 POI 中不存在。

我在类路径中遇到了 tika-app-1.4.jar(捆绑 POI 3.9)和 poi-3.0.2-FINAL-20080204.jar 的异常。

【讨论】:

    【解决方案2】:

    你可以改变你的方法WorkbookFactory.create(inputStream)
    而不是WorkbookFactory.create(File),这可以解决你的问题。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多