如何利用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 ...
随机推荐
- 零基础学习java------day9------多态,抽象类,接口
1. 多态 1.1 概述: 某一个事务,在不同环境下表现出来的不同状态 如:中国人可以是人的类型,中国人 p = new 中国人():同时中国人也是人类的一份,也可以把中国人称为人类,人类 d ...
- 容器之分类与各种测试(四)——unordered_set和unordered_map
关于set和map的区别前面已经说过,这里仅是用hashtable将其实现,所以不做过多说明,直接看程序 unordered_set #include<stdexcept> #includ ...
- java打jar包和运行jar包的两种方式
java打jar包和运行jar包的两种方式更详细的打包方式请参考https://www.cnblogs.com/mq0036/p/8566427.html 一.java类不依赖第三方jar包以简单的一 ...
- restful接口文档
1.先理清业务bai流程 2.定义前后端开发的接口规范.比如json的格dao式,url的格式 3.定内义接口文容档,这里的接口文档一般就是对应后台的实体reqVo(调用后台接口<控制器> ...
- Linux学习 - 文件系统常用命令
一.文件系统查看命令df df [选项] [挂载点] -a 查看所有文件系统信息,包括特殊文件系统 -h 使用习惯单位显示容量 -T 显示文件系统类型 -m 以MB为单位显示容量 -k 以KB为单位显 ...
- Java Jar包压缩、解压使用
什么是jar包JAR(Java Archive)是Java的归档文件,它是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件. 如何打/解包使用jdk/bin/jar.exe工具,配置完环境 ...
- shell脚本实现openss自建CA和证书申请
#!/bin/bash # #******************************************************************** #Author: Ma Xue ...
- mysql数据库备份脚本一例
例子,mysql数据库备份脚本.vim mysql.sh #!/bin/bash DAY=`date +%Y-%m-%d` //日期以年月日显示并赋予DAY变量 SIZE=`du -sh /var/l ...
- Redis,Memcache,MongoDb的特点与区别
Redis Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支 ...
- Python enumerate():使用计数器简化循环
摘要:当您需要计数和迭代中的值时,Pythonenumerate()允许您编写 Pythonicfor循环.最大的优点enumerate()是它返回一个带有计数器和值的元组,因此您不必自己增加计数器. ...