[英]Extract text from Office and PDF files in Java
我有.pdf,ppt,pptx,xls,xlsx,doc和.docx文件List<File>
,現在想在此文件中查找電子郵件地址。 我的問題是如何從那些文件中提取計划Text智能。 當前,我正在使用Apache POI,並且對於每種類型的File我都有一個單獨的方法,這樣做是否更短,更優雅? 也許還有可能同時處理.odt,.odp,.ods文件嗎? 如何將.pdf,ppt,pptx,xls,xlsx,doc和.docx文件中的計划文本轉換為字符串?
如果Apache庫可以將文件轉換為文本,則可以在結果文本中進行正則表達式搜索 。 如果可以使用其他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)庫,您可以使用正則表達式 (另一個正則表達式,為電子郵件地址創建的正則表達式,直接在上面給出鏈接)直接在PDF中執行搜索 。 該庫僅適用於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);
您嘗試過JOffice嗎? 它支持OpenOffice文檔格式(.odt,.ods)以及Microsoft Office文檔格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.