Python调用永中文档转换服务:从文件上传到在线预览的完整实践
本文详细介绍如何使用Python调用永中文档转换服务,涵盖文件上传、分步转换及复合型接口调用三种方式。通过具体代码示例,演示如何获取转换结果、处理错误代码及添加水印,并针对在线文档链接提供专用转换接口,帮助开发者快速实现文档的在线预览功能。
出于项目实际需求,近期我开始接触Python语言,并尝试将项目中使用的永中文档转换服务作为练手对象。得益于Python简洁易用的特性,开发过程十分顺畅,很快便完成了基础功能。在此对这一过程中的关键点进行梳理,既作为学习记录,也供其他开发者参考。
1 上传文件再转换
在查阅相关接口文档后,首先尝试通过上传文件的方式进行测试:
def upload():
url = 'http://172.18.21.87:48080/fcscloud/file/upload'
header = {"Content-Type": "multipart/form-data"}
file = {"file": open('score.xlsx', 'rb')}
result = requests.post(url=url, files=file).json()
print(json.dumps(result, sort_keys=True, indent=2, ensure_ascii=False))

操作成功后,系统返回了文件信息,其中data字段包含了文件的相对路径。获取该路径后,即可调用convert接口执行转换操作:
def upload():
url = 'http://172.18.21.87:48080/fcscloud/file/upload'
header = {"Content-Type": "multipart/form-data"}
file = {"file": open('score.xlsx', 'rb')}
result = requests.post(url=url, files=file).json()
return result['data']['data']
def convert(srcRelativePath):
url = 'http://172.18.21.87:48080/fcscloud/composite/convert'
data = {'convertType': 61, 'srcRelativePath': srcRelativePath}
result = requests.post(url=url, data=data).json()
print(json.dumps(result, sort_keys=True, indent=2, ensure_ascii=False))
if __name__ == '__main__':
convert(upload()) 此处对代码稍作调整,将upload接口返回的文件相对路径作为参数传入convert方法,并指定convertType参数(针对Office文件可设置为61)。接口同样返回JSON格式的结果。

返回的JSON结果中包含了转换时间、文件元数据、转换类型及错误代码等基本信息。其中,viewUrl字段提供了文档在线预览的地址,将其复制到浏览器中即可打开查看。

2 复合型接口
前文演示的是先上传文件再转换的两步流程,是否存在更简便的方式将两者合并?永中文档转换服务提供了复合型接口,支持一次性完成上传与转换:
def upload_and_convert():
url = 'http://172.18.21.87:48080/fcscloud/composite/upload'
header = {"Content-Type": "multipart/form-data"}
file = {"file": open('score.xlsx', 'rb')}
data = {"convertType": 61, #转换类型
"wmColor":"blue", #水印颜色
"wmContent":"永中文档转换服务", #水印内容
"wmSize":"50", #水印大小
"wmRotate":0} #水印角度
result = requests.post(url=url, files=file, data=data).json()
# print(result)
print(result['data']['viewUrl'])基于前述JSON返回结果,可以进一步丰富业务场景,例如通过检查错误代码判断转换是否成功。为简化演示,此处暂未处理异常分支,仅提取viewUrl用于预览。此外,在参数中额外添加了水印相关配置,以测试水印效果:

3 针对在线文档的转换接口
考虑到许多文件直接托管于网络,无需本地手动上传,永中文档转换服务还提供了专门针对在线文档URL的转换接口:
def http_file():
url = 'http://172.18.21.87:48080/fcscloud/composite/httpfile'
data = {"convertType": 61,
'fileUrl': "http://172.18.21.87:48080/fcscloud/view/preview/gN-L5i-rqfV3L-5YwdyhbocM4AFZ1qLaNOfR58wqmPzq5yl6Ozaox5FtkOeT3U2dcGH7iZIGEkHe2cYS19931fYVW1WmGxqScQcqTmqfF4k0XJ0n9T43tS0XAWUC9i7ylCA8riwx8vqdy7cdU_MPpdgABhrxJFXkl6fhGj__qRG6-3WWebp0p1RxMpuuGaZNpYzDMjwIfyBsOskCvCMmx1Zm9_hzBCke2CNkWIw2a6lrQXYRDSmEwT8IHxRFsYnKfQ0RnNAc5xTKZVi4ovzMANI5IY9vfOIBLjZyTH4XSj9aAzvjNn69flAzLSbU4aGzgU3VyTFbTwIO3jgfWCPmDYBxOikkjBh7bji6xtunWsA=/"}
result = requests.post(url=url, data=data).json()
print(result['data']['viewUrl'])同样提取viewUrl字段,在浏览器中访问该链接即可预览:

若遇到如下错误提示,表明系统无法下载指定的在线文件。这在逻辑上是合理的:若源文件无法获取,自然无法进行后续的转换与预览操作。

4 小结
以上即为永中文档转换服务的基本介绍。总体而言,该服务接口调用逻辑清晰,使用过程简单,且文件预览效果良好。由于本人初学Python,文中如有疏漏或不当之处,恳请各位专家指正。
本文介绍了基于Python使用永中文档转换服务的方法,更多相关内容可参考本站历史文章或继续浏览后续更新,感谢大家的支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









