如何利用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文档在线预览方式,不失为好的选择!

相关