用Java从Office和PDF文件中提取文本

用Java从Office和PDF文件中提取文本,java,excel,pdf,ms-office,apache-tika,Java,Excel,Pdf,Ms Office,Apache Tika,我有一个.pdf、ppt、pptx、xls、xlsx、doc和.docx文件的列表list,现在想在这些文件中查找电子邮件地址。我的问题是如何从这些文件中提取计划文本。目前我使用的是ApachePOI,我对每种类型的文件都有一个单一的方法,是否有一个更短、更优雅的可能性? 也许也可以处理.odt、.odp、.ods文件? 如何将.pdf、ppt、pptx、xls、xlsx、doc和.docx文件中的te计划文本转换为字符串?您尝试过吗?它支持OpenOffice文档格式(.odt、.ods)以及

我有一个.pdf、ppt、pptx、xls、xlsx、doc和.docx文件的列表
list
,现在想在这些文件中查找电子邮件地址。我的问题是如何从这些文件中提取计划文本。目前我使用的是ApachePOI,我对每种类型的文件都有一个单一的方法,是否有一个更短、更优雅的可能性? 也许也可以处理.odt、.odp、.ods文件?
如何将.pdf、ppt、pptx、xls、xlsx、doc和.docx文件中的te计划文本转换为字符串?

您尝试过吗?它支持OpenOffice文档格式(.odt、.ods)以及Microsoft Office文档格式。

如果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");
使用gnosticepdfone(for Java)库,您可以直接执行(另一个正则表达式,为电子邮件地址创建的正则表达式,上面给出的链接)。此库仅适用于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);
你试过了吗?