目前,市场对于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在线预览的更多相关文章

  1. Office在线预览及PDF在线预览的实现方式史上最全大集合

    Office在线预览及PDF在线预览的实现方式大集合 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPD ...

  2. office在线预览方案

    一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免 ...

  3. Office在线预览及PDF在线预览的实现方式大集合

    一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免 ...

  4. Office在线预览及PDF在线预览的实现方式

    原文链接:http://www.officeweb365.com/officetoview.html 一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office ...

  5. python爬虫处理在线预览的pdf文档

    引言 最近在爬一个网站,然后爬到详情页的时候发现,目标内容是用pdf在线预览的 比如如下网站: https://camelot-py.readthedocs.io/en/master/_static/ ...

  6. 微软提供的Office在线预览地址

    https://products.office.com/zh-CN/office-online/view-office-documents-online

  7. 在线预览office文件

    Office Online 实现在线预览 office的在线预览,针对不同的浏览器版本和系统具有要求,具体的相关文档请参考官方文档. 利用office online 平台进行office 文档的在线查 ...

  8. 经管资源库项目总结----在线预览office文件的实现与总结

    依旧是这个经管的项目.在线预览作为资源和文档管理系统的一个很酷的并且是如此重要的功能,是必须要实现的.然后百度一下office在线预览,看起来so eazy啊,各种博客各种demo,一下子就做出效果来 ...

  9. web office apps 在线预览实践

    摘要 在一些项目中需要在线预览office文档,包括word,excel,ppt等.达到预览文档的目的有很多方法,可以看我之前总结,在线预览的n种方案: [Asp.net]常见word,excel,p ...

随机推荐

  1. Levenshtein莱文斯坦算法在项目中的应用

    简介 根据维基百科的描述,在信息理论.语言学和计算机科学中,莱文斯坦距离是一个测量两个序列之间差异的字符串度量.非正式地,两个单词之间的莱文斯坦距离是将一个单词改变为另一个单词所需的最小单字符编辑次数 ...

  2. [项目总结]Android 手动显示和隐藏软键盘

    1.方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示) 1 InputMethodManager imm = (InputMethodManager) getSystemService(Cont ...

  3. size_type 和 size_t 的区别

    标准库string里面有个函数size,用来返回字符串中的字符个数,具体用法如下:string st("The expense of spirit\n");cout << ...

  4. Dubbo声明式缓存

    为了进一步提高消费者对用户的响应速度,减轻提供者的压力,Dubbo提供了基于结果的声明式缓存.该缓存是基于消费者端的,所以使用很简单,只需修改消费者配置文件,与提供者无关 一.创建消费者07-cons ...

  5. bugku 杂项 流量分析(cnss)

    bugku 杂项 流量分析(cnss) 此题较为简单 wireshark 追踪第一行tcp流信息 得到如下 GET /stat.htm?id=2724999&r=http%3A%2F%2Fsp ...

  6. 【Matlab】向图像域添加噪声/高斯/均匀/伽马/指数/椒盐

    [向图像域添加噪声] matlab自带一个函数:imnoise,可以对图像添加噪声. Matlab的说明 https://www.mathworks.com/help/images/ref/imnoi ...

  7. 全面解析 | 钥匙环服务的应用场景&商业价值

    在互联互通的场景驱动下,同一开发者旗下常常拥有多款应用或者多个应用形态,用户在同一设备的不同应用或端口登录时,即便使用同一帐号,仍需要重复输入密码进行验证,操作复杂,直接影响到用户的使用体验,而华为钥 ...

  8. Android工具 - 随机测试(猴子)

    原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6697535 本文章的前提:已经安装了Eclipse和ADT.androi ...

  9. 文件系统系列学习笔记 - inode/dentry/file/super(2)

    此篇文章主要介绍下linux 文件系统下的主要对象及他们之间的关系. 1 inode inode结构中主要包含对文件或者目录原信息的描述,原信息包括但不限于文件大小.文件在磁盘块中的位置信息.权限位. ...

  10. 象群游牧算法--EHO

    象群游牧算法的数学模型 象群的游牧行为非常复杂,但是其中一些行为可以帮助我们寻找全局最优解和局部最优解.对此,进行数学建模为: (1) 象群的每个部落都有固定数目的大象: (2) 每次迭代中,部落中都 ...