2015-12-07 3 views
0

У меня есть список файлов .pdf, ppt, pptx, xls, xlsx, doc и .docx List<File> и теперь вы хотите искать адреса электронной почты в этих файлах. Моя проблема заключается в том, как извлечь план Text smart из этих файлов. В настоящее время я использую Apache POI, и у меня есть один метод для каждого типа файлов, есть ли более короткая, более элегантная возможность сделать это? Возможно, есть также возможность обрабатывать файлы .odt, .odp, .ods? Как получить текст плана из .pdf, ppt, pptx, xls, xlsx, doc и .docx Файлы в строку?Извлечь текст из файлов Office и PDF в Java

+1

Вы попробовали [Apache Tika] (http://tika.apache.org/)? – Gagravarr

ответ

1

Если библиотека Apache может преобразовать файл в текст, вы можете сделать regex search в результирующем тексте. Если вы можете использовать какую-либо другую библиотеку Java, вы можете искать ее непосредственно в исходном документе или, по крайней мере, сначала конвертировать в обычный текст.

Компания, в которой я работаю, имеет несколько библиотек для двух из этих форматов. С библиотекой Gnostice XtremeDocumentStudio (для Java) вы можете конвертировать файлы PDF и DOCX в обычный текст.

DocumentConverter dc = new DocumentConverter(); 
dc.convertToFile("sample.pdf", "sample-pdf.txt"); 
dc.convertToFile("sample.docx", "sample-docx.txt"); 

С Gnostice PDFOne (для Java) библиотеки, вы можете напрямую выполнить search in the PDF using a regex (другое регулярное выражение, один созданный для адресов электронной почты, ссылки выше). Эта библиотека работает только с файлами PDF.

PdfDocument doc = new PdfDocument(); 
doc.load("Input_Docs\\input_doc.pdf"); 

// Obtain all website addresses in page 2 
ArrayList lstSearchResults = 
    (ArrayList) doc.search("http://{1}", // regular expression 
          2, // page number 
          PdfSearchMode.REGEX, 
          PdfSearchOptions.NONE); 
-1

Вы попробовали JOffice? Он поддерживает форматы документов OpenOffice (.odt, .ods), а также форматы документов Microsoft Office.

Смежные вопросы