【问题标题】:Extract text from Office and PDF files in Java用 Java 从 Office 和 PDF 文件中提取文本
【发布时间】:2015-12-07 19:20:03
【问题描述】:

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

【问题讨论】:

标签: java excel pdf ms-office apache-tika


【解决方案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);

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 2018-01-06
      • 2016-08-08
      • 2014-05-18
      相关资源
      最近更新 更多