最近项目上面有个需求,将用户上传的office格式转换成pdf格式。下面记录下我走过的一些弯路,和得到的一些收获
1 使用java第三方api转换。
这个是我最开始的想法,因为java毕竟比较熟悉,学习成本,维护成本相对较低。这个方案找过很多第三方,例如poi之类的,但是有两个缺点,1 性能低,对cpu压力大,2 兼容性差,很多格式或者特殊字符解析不出。
2 使用openOffice
openOffice也算是大名鼎鼎了,我使用的是另一个分支libreoffice。这个方案是在linux服务器上安装openOffice然后通过openOffice命令来转换pdf。
性能问题基本解决,但是兼容性还是太差,特别是windowsOffice很多特有 格式无法读取或者乱码,而且需要安装微软中文字体还有可能涉及到侵权。
3使用微软提供的com组件实现
微软提供一个叫做SaveAsPDFandXPS的com组建来实现office转换成pdf。
java通过jacob来调用com组件
具体实现
1 如果是web工程的话在jdk的bin目录下放置jacob-1.14.3-x64.dll
2 需要一台windows服务器,将该功能单独部署
3 这台windows服务需要安装office 和SaveAsPDFandXPS
方案优点, 解决性能问题,完美解决兼容性问题。
方案缺点, 需将转换服务单独部署,成为独立服务。需要windows服务器。需要实现linux系统和windows系统共享文件。这里感谢运维人员提供支持,通过磁盘挂载的方式实现共享文件。
实现流程为:
用户上传文件到web,web项目将用户上传的文件保存到文档服务器,然后调用部署在windows上的远程服务同时传递文件路径,该远程服务根据路径查找文档服务器上的文件并转换,然会返回相应的结果。
稍微注意就是,看业务需求是同步转换还是异步转换,同步采用rpc机制调用远程服务,异步采用mq消息队列机制来实现远程服务调用。mq好处在于,可以最大化提升性能,因为可以通过队列来按顺序转换对应文件。
- 大小: 9.6 KB
分享到:
相关推荐
OFFICE完美转换成PDF文档
office转换pdf类库,添加word,excel,ppt的dll引用,就可以直接调用本类库,得方法,转换office文档为pdf的文档,批量转换,同时,可以再转换成swf的格式,在线查看文档,类似于百度文库!
已流文件的方式显示PDF,ajax获取刘文建数据 aspose 转换office文档 PDF添加水印功能
将Office转成PDF文件,word转PDF,pdf转换工具,office转换工具
office 2007 PDF补丁 ,OFFICE2007另存为PDF或XPS格式补丁
完美支持Office转PDF,不需要安装office,只需要导入三个jar包就行,破解版无水印,里面写了对应的Demo,可以先看些里面的Aspose.txt
基于Java,利用OpenOffice转换office为PDF, 内附有jar包,java实现,OpenOffice下载地址,及OpenOffice在Linux下的安装实现。
用于将office文档转换为pdf格式文档,进行在线预览操作
Office2007转pdf的插件,安装成功此插件后,在word或者ppt文件里面“另存为”就有 PDF 或 XPS 选项了。老规矩,无积分的发送邮件到:1052206223@qq.com
java aspose office转pdf工具类 jar包依赖 认证文件 使用期限到2099年
使用jacob转换office为PDF文件,需要将jacob.dll放到jdk\bin目录下
文件转换合并工具使用 需安装.netframework 4.0 office2007以上版本。 承包方相关表格比较多时,想要这些表格按一定顺序放到一起打印,此工具可解决这个问题,使用方法如下: 1.选择工具包里的第一个应用程序...
2007版office转pdf插件,个人感觉非常好用,留下以后备用
office2007SaveAsPDFandXPS office 转换PDF
将office2007word文档转换PDF的插件,不用上密码,从别人也无法修改!还可以插入标签等!
微软自带的插件 ,强大,安装后另存在pdf即可
PDF打印机,安装后可以把office文档转换成PDF文件,实用工具。
office2007/2010word文档转pdf插件 轻松转换 安装后在另存选项就可见pdf
该工具是针对office转换为pdf开发的,相关的jar包都包含在其中,需要配置的文件也已经打包在压缩文件中,如果不知道如何进行操作,其中附有说明文件,代码都已经正常测试通过了。
PDF打印 office 转换为 PDF