Apache Tika maxStringLength达成了

Ali*_*lik 6 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);
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

  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);
Run Code Online (Sandbox Code Playgroud)

输出:

System.out.println("Content of the PDF :" + pcontext);
Run Code Online (Sandbox Code Playgroud)

wer*_*ero 19

使用

BodyContentHandler handler = new BodyContentHandler(-1);
Run Code Online (Sandbox Code Playgroud)

禁用限制.来自Javadoc:

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