//调用腾讯云 API import win.ui; /*DSG{{*/ mainForm = win.form(text="调用腾讯云 API - 图像转 Excel";right=757;bottom=467) mainForm.add( btnConvert={cls="button";text="图像转 Excel";left=352;top=394;right=668;bottom=460;color=14120960;font=LOGFONT(h=-14);note="请先拖动一个或多个包含表格的图像到窗口";z=1}; edit={cls="edit";left=10;top=16;right=737;bottom=376;autohscroll=false;edge=1;multiline=1;vscroll=1;z=2} ) /*}}*/ //存储待处理图像路径 var images = {}; //接受拖放 mainForm.onDropFiles = function(files){ table.append(images,files); mainForm.edit.text = string.join(images,'\r\n'); } //声明腾讯云接口,接口鉴权使用 v3 签名方法 TC3-HMAC-SHA256 import web.rest.tencentCloud; var http = web.rest.tencentCloud( secretId = "secretId"; secretKey = "secretKey"; action = "RecognizeTableAccurateOCR"; version = "2018-11-19"; region = "ap-shanghai"; service = "ocr"; ); var ocrApi = http.api("https://ocr.tencentcloudapi.com"); //响应按钮事件,图像转 Excel mainForm.btnConvert.oncommand = function(){ mainForm.btnConvert.disabled = true; mainForm.edit.print(); //遍历所有图像 for(i,path in images){ thread.delay(100); // Base64 编码 var base64 = crypt.encodeBin(string.loadBuffer(path)) //调用 API var result,err = ocrApi(ImageBase64 = base64); var resp = result[["Response"]]; var data = resp[["Data"]]; if(data){ // Base64 解码 var xls = crypt.decodeBin(data); //保存文件 string.save(path+'.xlsx',xls ) mainForm.edit.print(path + '.xlsx'); } else { mainForm.edit.print(resp[["Error"]] || err); } } mainForm.btnConvert.disabled = false; //清空待处理图像 images = {}; } mainForm.show(); win.loopMessage();