2016-11-14 9 views
0

Я пытаюсь извлечь текст из большого pdf (не сканированного/растрированного pdf) файла с помощью apache tika.Apache Tika не смог извлечь полный текст из большого pdf

Но после извлечения текста, когда я сравниваю оригинал (из pdf) и извлеченный текст, я обнаружил, что много текстового содержимого отсутствует. Я попытался использовать setMaxStringLength(-1) и BodyContentHandler(-1), чтобы максимизировать вывод. Но до сих пор не удалось извлечь полный текстовый контент из файла pdf.

Ниже приведены два образца, которые я пробовал.

Пример: 1

public class Extract 
{ 
    public static void main(String[] args) throws IOException, SAXException, TikaException 
    { 
     File file = new File("1.pdf"); 

     //Instantiating Tika facade class 
     Tika tika = new Tika(); 
     tika.setMaxStringLength(-1); 
     String filecontent = tika.parseToString(file); 
     System.out.println("Extracted Content: " + filecontent); 
    } 
} 

Пример: 2

public class Extract 
{ 
    public static void main(String[] args) throws IOException, SAXException, TikaException 
    { 
     BodyContentHandler handler = new BodyContentHandler(-1); //-1 to allow parsing for unlimited character 
     Metadata metadata = new Metadata(); 
     FileInputStream inputstream = new FileInputStream(new File("1.pdf")); 
     ParseContext pcontext = new ParseContext(); 

     //parsing the document using PDF parser 
     PDFParser pdfparser = new PDFParser(); 
     pdfparser.parse(inputstream, handler, metadata,pcontext); 

     //getting the content of the document 
     System.out.println("Contents of the PDF :" + handler.toString()); 

     //getting metadata of the document 
     System.out.println("Metadata of the PDF:"); 
     String[] metadataNames = metadata.names(); 

     for(String name : metadataNames) { 
      System.out.println(name+ " : " + metadata.get(name)); 
     } 
    } 
} 

Я могу видеть содержимое из последней страницы PDF. Но случайный текст в тексте отсутствует.

+2

Если это случается только для одного или нескольких PDF-файлов, пожалуйста, поделитесь с этим PDF-документом для анализа. – mkl

+1

Вы пробовали следовать инструкциям [Apache Tika Troubleshooting - PDF Text Problems] (https://wiki.apache.org/tika/Troubleshooting%20Tika#PDF_Text_Problems)? – Gagravarr

ответ

0

Это была самая глупая ошибка с моей стороны. Я принимал выходной файл с консоли eclipse с ограниченным пространством буфера. Когда я писал вывод в файл, он кажется идеальным.