博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于unoconv的在线office预览
阅读量:7024 次
发布时间:2019-06-28

本文共 841 字,大约阅读时间需要 2 分钟。

 

 

 

 

这几天在搞在线文档预览,网上查了几种方案,

  • 第一种:使用google的在线预览 -> 国内被Q,pass

  • 第二种:使用第三方的,比如:永中dcs -> 要钱,pass

  • 第三种:先转换为pdf,在使用pdf在线预览插件预览 -> 对服务器负担比较大。

  • 第四种:自己写解析库 -> 我这实力,开玩笑呢?

查了查,也就第三种可行。不过我之前都是做的简单的web开发,想到文档转换对于cpu的消耗比较大,应该无法适应大规模的并发情形。也在segmentfault上提了一个问题:,不过并没有得到很好的解决。

后来我问了一个同学,他之前用的unoconv把office文件转为pdf,然后通过站内信的方式提醒用户文档转换完成。中间用了php-resque这个轻量级消息队列。

和平时的php开发不同,除了cgi服务器以外,还要有个Worker,专门用来处理文档转换。

大概流程就是:php处理前端上传来的文件后,把转化文件的任务添加到redis里,然后不断的判断转换是否完成,转换完成后把pdf的路径传给前端,前端跳转过去。

实现

见:

效果

安装

 
sudo apt-get install unoconv redis-server php5-redisgit clone https://github.com/nladuo/online_office_viewer.gitcd online_office_viewer && composer install

启动redis

redis-server

启动Worker

cd online_office_viewer/clibash ./start_worker.sh

启动CGI服务器

cd online_office_viewerphp -S 0.0.0.0:8888

测试转换

选择一个文档

 

等待上传

查看Worker的日志

转换成功后

 

 

 
 

转载于:https://www.cnblogs.com/flzs/p/10164561.html

你可能感兴趣的文章
Oracle 数据库查看client的用户登录信息包括ip
查看>>
cacti脚本数据采集
查看>>
centos 下 django + uwsgi + nginx 快速搭建
查看>>
Kernel Trace System
查看>>
linux文件系统详解
查看>>
Vim入门基础
查看>>
我的友情链接
查看>>
ibatis mybatis sql语句配置 符号不兼容 大于号 小于号
查看>>
Alipay 开源 SofaRPC
查看>>
jquery的extend与fn.extend
查看>>
自动化测试应该学什么
查看>>
语音识别对比分析
查看>>
Linux命令之 wc
查看>>
在virtualbox中安装的ubuntu系统 共享数据空间分配的数据
查看>>
WinRAR4.11激活
查看>>
Oracle常用单行函数
查看>>
虚拟机客户端安装操作系统
查看>>
(fork)在局域网中部署微信服务器 (PHP)
查看>>
如何做好SEO
查看>>
Linux命令之free
查看>>