我正在寻找一个可以执行以下操作的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中实现的任何文档转换库,它使用所有常见的文档格式,既不是开源文档也不是商业文档格式。这似乎是一个真正的市场缺口。
答案 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的东西同样不稳定)。