目前,市场对于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. PC端页面转换成手机端页面的分辨率问题的理解

    PC端页面转换成手机端页面的分辨率问题的理解 px vw rem 假如就以a4纸模式为设计图 ,在a3纸模式中设计,然后设计出来展示在不同的a4纸模式上 通常是 750px -> 100vw / ...

  2. adhere, adjust, adjacent

    adhere to stick,不是to here. 在古英语里,stick是twig(细树枝).fasten(想必是用twig来固定).后引申为粘住.stick还有stab, pierce的意思,想 ...

  3. 容器之分类与各种测试(四)——multimap

    multiset和multimap的具体区别在于,前者的key值就是自己存储的value,后者的key与value是分开的不相关的. 例程 #include<stdexcept> #inc ...

  4. 快速挂起VIM以及调出被挂起的VIM的方法

    vim中开了多窗口后有时需要临时切出去执行shell指令,查看结果,在vim中用%很不方便查看结果,要切出去又要逐个小窗口:q,非常麻烦. 上网一查竟然有挂起的方法: 挂起:ctrl-z 调出:fg ...

  5. tomcat结合nginx

    相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了 ...

  6. 错误: 找不到或无法加载主类(IDEA中启动spring boot项目)

    版权声明:本文为博主原创文章,如果转载请给出原文链接:http://www.jufanshare.com/content/142.html 提示:需要对IDEA编辑工具使用熟悉 出现一个问题,就是sp ...

  7. matplotlib subplot 多图合一

    1:第一种方法 # method1: subplot2grid ################# ''' 第一个参数(3, 3) 是把图分成3行3列 第二个参数是位置 (0, 0)表示从0行0列开始 ...

  8. 【C/C++】two pointers/归并排序/原理/理解/实现/算法笔记4.6

    1.two pointers 思路:对序列进行扫描的时候,根据序列本身的特性用两个下标i和j对序列进行扫描,从而降低算法复杂度. ·例1 在递增序列中找a + b = M while (i<j) ...

  9. 【Java】【学习】【监听器】Listener的学习的案例(窗体程序)

    JavaWeb 监听器listener 学习与简单应用 Java窗体程序使用监听器 效果:点击按钮,控制台出现文字 代码如下 import javax.swing.*; import java.awt ...

  10. 【JAVA今法修真】 第二章 一气化三清 线程分心念

    这是我的微信公众号,希望有兴趣的朋友能够一起交流,也希望能够多多支持新人作者,你的每一份关注都是我写文章的动力:南橘ryc 天有八纪,地分九州,万法仙门与天道剑宗一并坐落在东北方通辽州. 与李小庚想象 ...