Office文档转pdf

由于某个项目的原因,需要将微软的文档,如:xls,doc,docx,ppt...等文件转换为pdf格式。大概的需求为,在某用户上传附件到web服务器时,判断用户的文档类型,如果用户上传的文档后缀类型为office文档类型时,就将文档转换为pdf,并保存到web服务器某文件目录下,以便共享给其它用户进行下载。
这个里面最主要的需求就是如果将office文件转换为统一的pdf格式。
通过google大神的搜索,找到一堆资料。总结起来主要包括两种方式:
1.通过一些组件包,解析文档中的数据信息,再以pdf数据格式进行组装,如:使用apache poi解析EXCEL文件信息,并能过iText组件包,将信息组装为pdf格式,写入文本文件中。
2.通过组件包,调用office的动态链接库,由office的动态连接库直接完成相关格式的转换。如:jodconverter。首先你需要在本地安装openoffice,然后打开openoffice远程调用的服务,jodconverter主要是能过调程调用的方式,调用openoffice的动态连接库来完成文件类型的转换。(因为openoffice有save as等功能,可以将office文件保存为pdf,所以动态连接库肯定有相应函数。)

两者的比较:
1.方法一的优点就是不依赖于环境,添加几个jar包到工程里面就搞定了,但缺点就是要写很多代码来解析出各种文件格式中的数据,并将信息写入到pdf的统一格式中。不仅开发时间长,维护成本也高,而且还有好多格式无法转换。
2.方法二的刚好与方法一形成互补,他的优点就是不用写什么代码,因为功能都由动态链接库实现了。但缺点就是要依赖一个外置环境。本地需要安装openoffice或MS office。

实现:
关于两种方式实现例子很多,每种方式都能搜出很多实现方式。这里我只将我的实现方式进行说明,我是使用jodconverter+openoffice的方式进行的实现,主要参照该文章:
http://blog.zhaojie.me/2010/05/convert-document-to-pdf-via-openoffice.html
本人将我的实现的封装类添加到附件中,有备无患。




猜你喜欢

转载自duyangsss.iteye.com/blog/1467399