Mam tysiące dokumentów PDF, które mają 11-15 MB. Mój program mówi, że mój dokument zawiera ponad 100k znaków.Maks. Długość łańcucha Apache Długość osiągnęła
wyjścieBłąd:
Wyjątek w wątku „głównym” org.apache.tika.sax.WriteOutContentHandler $ WriteLimitReachedException: Dokument zawierał więcej niż 100000 znaków, i tak został osiągnięty Twój o ograniczenie . Aby otrzymać pełny tekst dokumentu , zwiększ limit.
Jak mogę zwiększyć limit do 10-15mb?
Znalazłem rozwiązanie, które jest nową klasą fasadową Tiki, ale nie mogłem znaleźć sposobu na zintegrowanie jej z moją.
Tika tika = new Tika();
tika.setMaxStringLength(10*1024*1024);
Oto mój kod:
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);
wyjściowa:
System.out.println("Content of the PDF :" + pcontext);
dziękuję za odpowiedź. Spróbuję, kiedy będę w domu. Czy nie wyłączasz limitu niebezpiecznego, zamiast go ograniczać? Jeśli użytkownik wyśle 10gb dokumentu PDF na śmieci, system zniszczy lub ulegnie awarii. –
@ Ali19033 oczywiście można również po prostu zwiększyć limit, aby po prostu pokryć rozmiar plików PDF. – wero