如何利用Python实现Office在线预览
目前,市场对于Office在线预览功能的需求是很大的。对于我们用户本身来说,下载Office文件后再实现预览是极其不方便的,何况还有一些不能打开的专业文档、压缩文件等。此时,能提供在线预览服务的软件就显得尤为重要。市面上常见的有永中云预览、微软Office Online以及一些开源的产品。今天就从开发者的角度向大家介绍一下Python如何通过永中云预览实现文档在线预览服务。
一、申请应用
首先,打开永中云服务的官网https://open.yozocloud.cn/,进行注册登录
其次,在管理中心申请永中云预览的应用,应用名称根据实际情况自己设置即可,此时会生成appId和appkey。

二、 获取签名
永中云预览官网上目前已经提供多种开发语言的sdk包,Python相关的链接直接贴上。
SDK下载地址https://cms.yozocloud.cn/info/file/getResource/78
DEMO下载地址https://cms.yozocloud.cn/info/file/getResource/77
示例如下,签名时传参数appId和secret即可(Secret就是前文的appkey)
from signclient import generateSign secret = ' '
params = {
"appId": [" "]
}
sign = generateSign(secret, params)
print(sign)
三、上传文件
永中云预览提供http上传以及本地上传,在这就针对本地上传进行简略介绍。
文件上传需要参数appId、sign、file.
API地址:http://dmc.yozocloud.cn/api/file/upload 调用方法:post
注意:文件的数据类型:multipartFile 参数类型:formData
#upload上传文件
url = 'http://dmc.yozocloud.cn/api/file/upload?appId={}&sign={}'.format(' appId数据 ', sign) header = {"Content-Type": "multipart/form-data"} #文件数据类型
file = {"file": open("E:\\测试.pdf", "rb")} res = requests.post(url=url, files=file).json()
print(res) fileVersionId = res['data']['fileVersionId']
上传本地文件至永中服务器,上传成功后会返回对应的fileId和fileVersionId,我们可以使用fileVersionId实现在线操作。
四、预览文档
此时,利用生成的fileVersionId、appId、secret生成二次签名sign。
#二次签名
params = {"appId": [" "],
"fileVersionId": [fileVersionId]
}
sign = generateSign(secret, params)
print(sign)
拼接预览地址示例如下:http://eic.yozocloud.cn/api/view/file?fileVersionId=xxxx&appId=xxxx&sign=xxxxx
拼接完预览地址后,可以在浏览器直接访问,实现文档在线预览。
#拼接预览地址
url = 'http://eic.yozocloud.cn/api/view/file?appId={}&sign={}&fileVersionId={}'.format(' ', sign,
fileVersionId)
print(url)
预览效果如图所示:

除此之外,永中还提供了其他参数,比如水印watermark、防复制isCopy、预览模式viewType、源文件下载isDownload等,可以实现不同的需求。
总而言之,永中云预览的服务是一种比较方便的Office文档在线预览方式,不失为好的选择!
如何利用Python实现Office在线预览的更多相关文章
- Office在线预览及PDF在线预览的实现方式史上最全大集合
Office在线预览及PDF在线预览的实现方式大集合 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPD ...
- office在线预览方案
一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免 ...
- Office在线预览及PDF在线预览的实现方式大集合
一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免 ...
- Office在线预览及PDF在线预览的实现方式
原文链接:http://www.officeweb365.com/officetoview.html 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office ...
- python爬虫处理在线预览的pdf文档
引言 最近在爬一个网站,然后爬到详情页的时候发现,目标内容是用pdf在线预览的 比如如下网站: https://camelot-py.readthedocs.io/en/master/_static/ ...
- 微软提供的Office在线预览地址
https://products.office.com/zh-CN/office-online/view-office-documents-online
- 在线预览office文件
Office Online 实现在线预览 office的在线预览,针对不同的浏览器版本和系统具有要求,具体的相关文档请参考官方文档. 利用office online 平台进行office 文档的在线查 ...
- 经管资源库项目总结----在线预览office文件的实现与总结
依旧是这个经管的项目.在线预览作为资源和文档管理系统的一个很酷的并且是如此重要的功能,是必须要实现的.然后百度一下office在线预览,看起来so eazy啊,各种博客各种demo,一下子就做出效果来 ...
- web office apps 在线预览实践
摘要 在一些项目中需要在线预览office文档,包括word,excel,ppt等.达到预览文档的目的有很多方法,可以看我之前总结,在线预览的n种方案: [Asp.net]常见word,excel,p ...
随机推荐
- “equals”有值 与 “==”存在 “equals”只是比较值是否相同,值传递,==地址传递,null==a,避免引发空指针异常,STRING是一个对象==null,对象不存在,str.equals("")对象存在但是包含字符‘''
原文链接:http://www.cnblogs.com/lezhou2014/p/3955536.html "equals" 与 "==" "equa ...
- git 新建分支并切换到该分支_Git 从master拉取代码创建新分支 并且再将修改合并到master...
开发过程中会从master主分支copy到另一个开发分支: 1.切换到master分支 git checkout master 2.获取最新的代码 git pull origin master 3 ...
- 14 - springboot的@Configuration、@Bean、@Import()、@ImportResource()、@Conditional说明
1.@Configuration.@Bean.@Import().@ImportResource().@Conditional 分析源码的时候总会见到标题中的这几个注解,因此:弄一篇博客来说明一下吧, ...
- C++中的排序
下面网站解释比较好 http://www.cnblogs.com/heyonggang/archive/2013/11/03/3404371.html 1. qsort(C中的函数加上stdlib.h ...
- Linux常用命令之文件权限管理
Linux文件权限管理1.改变文件或目录的权限:chmod命令详解命令名称:chmod命令所在路径:/bin/chmod执行权限:所有用户语法:chmod [{ugoa}{+-=}{rwx}] [文件 ...
- C++中union相关
前两天做阿里笔试遇到一个选择题题目大概是 #include <iostream> #include <stdlib.h> using namespace std; union ...
- 数据库SQL性能优化
1.in与exists的效率比较 in是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询.一直以来认为exists 比in 效率高的说法是不准 ...
- 【Linux】【Basis】文件系统
FHS:Filesystem Hierarchy Standard Web site: https://wiki.linuxfoundation.org/lsb/fhs http://www.path ...
- 实现将rsyslog将日志记录与MySQL中
准备两个节点 node3: rsyslog node2: 数据库 准备相应的包 [root@node3 php-fpm.d]#yum install rsyslog-mysql 将数据拷贝到数据 ...
- Hadoop生态圈学习-1(理论基础)
一.大数据技术产生的背景 1. 计算机和信息技术(尤其是移动互联网)的迅猛发展和普及,行业应用系统的规模迅速扩大(用户数量和应用场景,比如facebook.淘宝.微信.银联.12306等),行业应用所 ...