Apache Tika maxStringLength达成了

时间:2016-02-21 22:17:07

标签: java apache parsing apache-tika

我有成千上万的pdf文件,11-15mb。我的程序说我的文档包含超过10万个字符。

错误输出:

  

线程“main”中的异常   org.apache.tika.sax.WriteOutContentHandler $ WriteLimitReachedException:   您的文档包含超过100000个字符,所以您的文档   已达到要求的限制。收到的全文   文件,增加你的限制。

如何将限制增加到10-15mb?

我找到了一个新的Tika门面课程的解决方案,但我找不到将它与我的整合的方法。

  Tika tika = new Tika(); 
  tika.setMaxStringLength(10*1024*1024);

这是我的代码:

  BodyContentHandler handler = new BodyContentHandler();
  Metadata metadata = new Metadata();
  String location = "C:\\Users\\Laptop\\Dropbox\\MainTextbookTrappe2ndEd.pdf";
  FileInputStream inputstream = new FileInputStream(location);
  ParseContext pcontext = new ParseContext();
  PDFParser pdfparser = new PDFParser(); 
  pdfparser.parse(inputstream, handler, metadata, pcontext);

输出:

System.out.println("Content of the PDF :" + pcontext);

1 个答案:

答案 0 :(得分:18)

使用

BodyContentHandler handler = new BodyContentHandler(-1);

禁用限制。 来自Javadoc

  

内部字符串缓冲区以给定的数量为界   字符。如果达到此写入限制,则SAXException为   抛出。
参数:writeLimit - 最大字符数   包含在字符串中,或​​-1以禁用写入限制