2019独角兽企业重金招聘Python工程师标准>>>

最近项目上面有个需求,将用户上传的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好处在于,可以最大化提升性能,因为可以通过队列来按顺序转换对应文件。

转载于:https://my.oschina.net/u/2543341/blog/800237

office转PDF文档相关推荐

  1. java对office、pdf文档在线预览解析(融合进项目中)

    最近在项目中要做一个文档的预览,在网上搜了好多demo,都可以实现其功能,但是放在自己的项目中有点复杂. 先说明本人的开发环境(win7+tomcat7+maven+svn+myeclipse),接下 ...

  2. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  3. java零碎要点010---Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  4. java将office文档,word,ppt,pdf文档转换成swf文件在线预览

    java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...

  5. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

  6. java 预览word文档_Java实现office文档与pdf文档的在线预览功能

    最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...

  7. Python 技术篇-利用Office VBA实现word文档转化为pdf文档实例演示

    # -*- coding: UTF8 -*- from win32com.client import *def switch_pdf(path, name):'''作用:将word文档转化为pdf文档 ...

  8. 编辑PDF文档,Word 2013可以是您的选择

    题外话:记得刚进公司的时候,几乎所有的培训文档都是PDF.标准文档,公司使用的软件是Adobe Acrobat 5.0(不知道多少钱,呵呵),软件当然是购买正版的:去年,公司购买了新版本的Adobe ...

  9. pdf 加深 扫描件_为什么PDF文档不能像Word文档一样随便编辑?如何免费将PDF转换为Word?...

    PDF文档是一种非常难编辑的文档,有时候我们需要编辑或者复制PDF文档里面的内容,把PDF文档转换为Word就是我们最佳的选择.为什么PDF文档这么难编辑?我们怎么免费把PDF文档转换为Word文档? ...

  10. 叫你两招编辑PDF文档的方法

    PDF 文档的规范性使得浏览者在阅读上方便了许多,但倘若要从里面提取些资料,实在是麻烦的可以.回忆起当初做毕业设计时规定的英文翻译,痛苦的要命,竟然傻到 用Print Screen截取画面到画图板,再 ...

最新文章

  1. mysql中文时好时坏_mysql索引的问题,时好时坏
  2. Flask 项目布局
  3. Docker Client(Docker 客户端)
  4. threadpoolexecutor创建线程池_线程池ThreadPoolExecutor源码分析
  5. NDK-r17c编译FFmpeg4.3(支持硬编解码与neon)(七)
  6. 第八章(三)滑动窗口
  7. JAVA版的IntHashMap的多个源码
  8. VS2010快捷键大全
  9. 如何将scratch游戏打包成APP
  10. 新浪微博登录html代码,新浪微博登录仿DiscuzX1.5论坛QQ登录样式 - YangJunwei
  11. 数值分析实验(四)之方程求根的数值方法
  12. 北京文安科技发展有限公司招聘简介
  13. MediaRecorder之视频录制
  14. 启动Storm的nimbus和supervisor时报错: ImportError: No module named argparse
  15. 如何快速撰写文章—伪原创
  16. 半年经验Java面试准备
  17. oracle sql 时间差
  18. java bean嵌套,Mockito注入嵌套bean
  19. 来自Google持续更新中的TCP BBR v2.0最新进展
  20. ubuntu tmp目录overflow的解决方案

热门文章

  1. 基于SSM校园一卡通管理系统
  2. 好用的json格式化网址
  3. 解决:Failed to create 'build\outputs\apk\watch-debug-unaligned.apks': 拒绝访问。
  4. 51单片机实现蜂鸣器播放天空之城
  5. Java程序员必看的 14 本 Java 书籍!
  6. C语言实例:斐波那契数列
  7. 基于mfc 组态软件_组态软件有哪些?InTouch、WinCC、组态王?
  8. Unity zSpace 开发
  9. 计算机组成原理唐朔飞第八章ppt,计算机组成原理唐朔飞课件
  10. 计算机组成原理课后答案(唐朔飞第三版) 第二章