繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM