51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 759|回复: 0
打印 上一主题 下一主题

[转贴] 基于Python使用永中文档转换服务

[复制链接]
  • TA的每日心情
    擦汗
    3 天前
  • 签到天数: 962 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-6-1 10:49:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1 上传文件再转换
      查看了对应的接口文档后,先来上传一个文件试试:
    1. def upload():
    2.       url = 'http://172.18.21.87:48080/fcscloud/file/upload'
    3.       header = {"Content-Type": "multipart/form-data"}
    4.       file = {"file": open('score.xlsx', 'rb')}
    5.       result = requests.post(url=url, files=file).json()
    6.       print(json.dumps(result, sort_keys=True, indent=2, ensure_ascii=False))
    复制代码

    操作成功,文件已经上传,data里就是文件的相对路径了;知道返回数据之后,就可以再调用convert接口进行转换:
    1.  def upload():
    2.       url = 'http://172.18.21.87:48080/fcscloud/file/upload'
    3.       header = {"Content-Type": "multipart/form-data"}
    4.       file = {"file": open('score.xlsx', 'rb')}
    5.       result = requests.post(url=url, files=file).json()
    6.       return result['data']['data']
    7.   
    8.   def convert(srcRelativePath):
    9.       url = 'http://172.18.21.87:48080/fcscloud/composite/convert'
    10.       data = {'convertType': 61, 'srcRelativePath': srcRelativePath}
    11.       result = requests.post(url=url, data=data).json()
    12.       print(json.dumps(result, sort_keys=True, indent=2, ensure_ascii=False))
    13.      
    14.   if __name__ == '__main__':
    15.       convert(upload())   
    复制代码
    这边改动一下,把upload接口返回的结果,作为参数传给convert,并且指定convertType也就是转换类型(针对office文件可以用61),同样返回一个json结果。


    json结果中包含了一些基本信息,如转换时间、文件信息、转换类型、及错误代码等等;而viewUrl就是文档在线预览的地址,复制到浏览器打开看下 。

     2 复合型接口
      刚才是先上传文件,再进行转换的,有没有更简单的办法合二为一呢?永中文档转换服务就提供了这样的复合型接口:
    1. def upload_and_convert():
    2.       url = 'http://172.18.21.87:48080/fcscloud/composite/upload'
    3.       header = {"Content-Type": "multipart/form-data"}
    4.       file = {"file": open('score.xlsx', 'rb')}
    5.       data = {"convertType": 61,                   #转换类型
    6.               "wmColor":"blue",                    #水印颜色
    7.               "wmContent":"永中文档转换服务",       #水印内容
    8.               "wmSize":"50",                       #水印大小
    9.               "wmRotate":0}                        #水印角度
    10.       result = requests.post(url=url, files=file, data=data).json()
    11.       # print(result)
    12.       print(result['data']['viewUrl'])
    复制代码
    根据上文里展示里的json结果,就可以丰富场景和业务了,比如根据错误代码来判断是否转换成功等等,这边为了展示效果,暂时没有考虑一些异常,只取viewUrl预览;同时在参数中,额外加了一些水印相关参数,看看水印的效果如何:


    3 针对在线文档的转换接口
      考虑到现在很多文件都是在线的,而不手动上传,永中文档转换服务还提供了针对在线文档的转换接口:
    1.  def http_file():
    2.       url = 'http://172.18.21.87:48080/fcscloud/composite/httpfile'
    3.       data = {"convertType": 61,
    4.               'fileUrl': "http://172.18.21.87:48080/fcscloud/view/preview/gN-L5i-rqfV3L-5YwdyhbocM4AFZ1qLaNOfR58wqmPzq5yl6Ozaox5FtkOeT3U2dcGH7iZIGEkHe2cYS19931fYVW1WmGxqScQcqTmqfF4k0XJ0n9T43tS0XAWUC9i7ylCA8riwx8vqdy7cdU_MPpdgABhrxJFXkl6fhGj__qRG6-3WWebp0p1RxMpuuGaZNpYzDMjwIfyBsOskCvCMmx1Zm9_hzBCke2CNkWIw2a6lrQXYRDSmEwT8IHxRFsYnKfQ0RnNAc5xTKZVi4ovzMANI5IY9vfOIBLjZyTH4XSj9aAzvjNn69flAzLSbU4aGzgU3VyTFbTwIO3jgfWCPmDYBxOikkjBh7bji6xtunWsA=/"}
    5.       result = requests.post(url=url, data=data).json()
    6.       print(result['data']['viewUrl'])
    复制代码
     同样只取viewUrl预览,在浏览器中访问链接。  

    如果出现以下的错误,说明无法下载到在线文件,想想这也很合理:如果都无法获取文件,又何如进行转换和预览呢?

     4 小结
      好了,关于永中文档转换的服务就先介绍到这。总的来说,接口调用简单,加上使用过程并不复杂,并且文件预览的效果也很好。当然,由于刚刚接触Python,有不足之处,还请各位大佬多多指教,哈。




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-6-9 09:42 , Processed in 0.075403 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表