原生Java文档解析器和基于转换器库/ linux的文档转换器

时间:2011-09-05 08:10:43

标签: java linux parsing document converter

我正在寻找一个可以执行以下操作的Java库:

以* .eml或* .msg格式解析DOC,DOCX,JPEG,PNG,GIF,TXT,XLS,XLSX,PPT,PDF类附件的电子邮件,并将附件转换为TIFF格式。

它可以是开源的,也可以是商业图书馆。或者我正在寻找linux的命令行工具。我们已经尝试过开放式办公室,但是某些文档格式存在太多问题。

更新:

到目前为止我通过研究发现了什么:

对于解析电子邮件和提取附件,JavaMail(http://www.oracle.com/technetwork/java/javamail/index.html)是一个不错的选择。

为了转换文档,JodConverter(http://code.google.com/p/jodconverter/)是一个舒适的库。然而,它只是开放式办公室的包装器,所以如果开放式办公室存在问题(我经常遇到openoffice问题)转换文档,你也可以使用JodConcerter。

总之,我没有运气(到现在为止)找到在本机java中实现的任何文档转换库,它使用所有常见的文档格式,既不是开源文档也不是商业文档格式。这似乎是一个真正的市场缺口。

4 个答案:

答案 0 :(得分:2)

RainbowPDF可能适合:它是一个基于商业服务器的转换工具,带有Java API。

如果您有Windows服务器,请查看NEEVIA Document Converter Pro。它有一些邮件功能。

Apace POI是一个读取Microsoft Office文档内容的界面。您必须自己编写图像生成和布局组件。但它仍然读取Outlook MSG格式。

答案 1 :(得分:1)

Apache POI - 用于Microsoft文档的Java API 。但是我不知道如何轻松地将解析后的文档转换为TIFF。

答案 2 :(得分:0)

可能是不同方法的混合可能有用吗?根据您的要求,可以使用多个库来转换您需要管理的所有格式:Microsoft Office,Adobe PDF,一些不同的图像格式和简单的文本文件。

我的意思是,您可以创建一个进程,根据提取的文件类型(使用Java Mail),您可以识别文件具有何种格式,并使用合适的库继续使用正确的转换机制进行处理。然后,您将识别文件是否为要转换的图像,尝试Java Advanced Imaging,如果它是Microsoft Office文件,请尝试Apache POI等等。对于管理PDF文件,您可以尝试Apache PDFBox这是另一个优秀的开源解决方案。

顺便说一句,如果您不仅仅关注Java方法,this thread可能会对您有所帮助。

我不知道是否有比@ChrisGer评论更好的商业解决方案。

答案 3 :(得分:-1)

不要浪费时间查看Apache POI,因为它只能解析Office文件的内容,但不适合渲染它。

由于可以使用OpenOffice服务器,我建议您这样做。我也知道你可以轻松地使用DCOM与Microsoft Office应用程序交谈,也许Java-> DCOM桥接器更能胜任这项任务。但是,微软甚至不推荐这样做(所以我认为JodConverter的东西同样不稳定)。