我有一个.pdf,ppt,pptx,xls,xlsx,doc和.docx文件 List<File> 的列表,现在想在这个文件中查找电子邮件地址 . 我的问题是如何从这些文件中提取计划文本智能 . 目前我正在使用Apache POI,我对每种类型的文件都有一个单一的方法是否有更短,更优雅的可能性这样做?也许还有一个可能性来处理.odt,.odp,.ods文件?如何将.pdf,ppt,pptx,xls,xlsx,doc和.docx文件中的文本计划成字符串?
List<File>
如果Apache库可以将文件转换为文本,那么您可以在结果文本中执行regex search . 如果您可以使用其他Java库,那么您可以直接在原始文档中搜索,或者至少先将它们转换为纯文本 .
我工作的公司有两个这些格式的库 . 使用Gnostice XtremeDocumentStudio(for Java)库,您可以将PDF和DOCX文件转换为纯文本 .
DocumentConverter dc = new DocumentConverter(); dc.convertToFile("sample.pdf", "sample-pdf.txt"); dc.convertToFile("sample.docx", "sample-docx.txt");
使用Gnostice PDFOne(for 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);
你试过JOffice吗?它支持OpenOffice文档格式(.odt,.ods)以及Microsoft Office文档格式 .
2 回答
如果Apache库可以将文件转换为文本,那么您可以在结果文本中执行regex search . 如果您可以使用其他Java库,那么您可以直接在原始文档中搜索,或者至少先将它们转换为纯文本 .
我工作的公司有两个这些格式的库 . 使用Gnostice XtremeDocumentStudio(for Java)库,您可以将PDF和DOCX文件转换为纯文本 .
使用Gnostice PDFOne(for Java)库,您可以直接执行search in the PDF using a regex(另一个正则表达式,为电子邮件地址创建的一个,上面给出的链接) . 此库仅适用于PDF文件 .
你试过JOffice吗?它支持OpenOffice文档格式(.odt,.ods)以及Microsoft Office文档格式 .