Sub BC_识别身份证()Dim SHD, SHX As WorksheetDim AppKey, SecretKey, Token, PathY As StringDim jSon, JSonA, WithHttp As ObjectDim Pic, oDom, oW, jsCode, paramsDim ARX, BRX, DRX, ERX, ZADDim StrText, StrUrl As StringDim StrA, StrB, StrC As StringDim I, X, K As LongRem 禁止系统刷屏?触发其他事件等'On Error Resume Next '// 发生错误,自动执行下一句,就是忽略错误Rem 获取百度TokenSet SHX = Worksheets("参数")AppKey = SHX.Range("B1").ValueSecretKey = SHX.Range("B2").ValueToken = GetTokenBaiDu(AppKey:=AppKey, SecretKey:=SecretKey)Rem 指定发票文件, 可以是PDF,或JPG,PNG文件, 暂不支持: 一张放票内多条明细, 一个文件内多张发票PathY = GetFileName(KZM:="图片文件,*.png;*.bmp;*.jpeg;*.jpg", Title:="请选择图片文件", FileName:="", StrSplitor:="\")Open PathY For Binary As #1Dim chs() As ByteFor I =0 To LOF(1)-1 '循环至文件末端ReDim Preserve chs(0 To K) As Byte '将文件内容存入字节数组Get #1, , chs(K) '获取文本内容K = K +1Next IClose #1Pic = Byte2Base64(chs)Set oDom = CreateObject("htmlfile")Set oW = oDom.parentWindowjsCode ="encodeURIComponent('"& Pic &"');"Pic = oW.eval(jsCode)Rem Pic = WorksheetFunction.EncodeURL(Pic)params ="id_card_side="+"front"+"&image="& Pic' params ="image="& PicStrUrl ="https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token="& TokenSet WithHttp = CreateObject("winhttp.winhttprequest.5.1")With WithHttp.Open "post", StrUrl,False.setRequestHeader "content-type","application/x-www-form-urlencoded".send (params)StrText = BytesToBstr(.Responsebody,"utf-8")End WithSet oDom = NothingSet oW = NothingRem SHX.Range("G4").Value = StrText '// StrText = SHX.Range("G4").ValueRem 创建JSON对象并将其赋值为要解析的JSON字符串Set jSon = JsonConverter.ParseJson(StrText)Rem jSon.Count & vbCrLf & jSon.Items()(0)& vbCrLf & jSon.keys()(0)Rem JSON("forecast")("forecastday")("hour")(i)("time_epoch")Rem IntX = jSon("words_result")("CommodityName").CountRem 写到字典中Set ZAD = CreateObject("Scripting.Dictionary")If InStr(StrText,"姓名")=0 ThenIf InStr(StrText,"签发日期")>0 ThenZAD("签发日期")= jSon("words_result")("签发日期")("words")ZAD("失效日期")= jSon("words_result")("失效日期")("words")ZAD("签发机关")= jSon("words_result")("签发机关")("words")ElseZAD("错误")="识别失败,返回结果错误"End IfElseZAD("姓名")= jSon("words_result")("姓名")("words")ZAD("性别")= jSon("words_result")("性别")("words")ZAD("出生日期")= jSon("words_result")("出生")("words")ZAD("身份号码")= jSon("words_result")("公民身份号码")("words")ZAD("民族")= jSon("words_result")("民族")("words")ZAD("住址")= jSon("words_result")("住址")("words")End IfRem 写入数组并输出ERX = ZAD.keysReDim DRX(0 To UBound(ERX),0 To 1)For X =0 To UBound(ERX)DRX(X,0)= ERX(X)DRX(X,1)= ZAD(ERX(X))NextSet SHD = Worksheets("test")SHD.Range("A:B").ClearContentsSHD.Range("A1").Resize(UBound(DRX,1)+1, UBound(DRX,2)+1)= DRXMsgBox UBound(DRX,1), vbInformation,"识别成功"
End Sub
相关新闻
Kore.ai获10亿元融资,提供定制化类ChatGPT助手
1月31日,生成式AI和企业对话平台Kore.ai在官网宣布,获得1.5 亿美元(约10.7亿元)融资。本次由FTV Capital 领投,英伟达等跟投。
Kore.ai主要提供银行、医疗、零售、营销、人力资源等多种领域的,定制化类Cha…
【使用python压缩pdf文件大小】
工作中常需要压缩数据文件大小,压缩PDF文件是一种减少PDF文件大小的方法,这样可以使文件更易于传输和存储。下面是一些常见的压缩PDF文件的方法:
A. 常见的压缩PDF文件的方法
在线压缩工具:有很多在线的PDF压缩工具,…
3个颠覆性技巧:用AI背景移除插件打造专业级直播画面 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https://gi…
如何5分钟搞定Mac Boot Camp驱动:Brigadier完整使用指南
如何5分钟搞定Mac Boot Camp驱动:Brigadier完整使用指南 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier
还在为Mac安装Windows系统后的驱动问题烦恼吗?Brigad…
ThinkPad风扇控制革命:TPFanCtrl2让你的笔记本静如处子,动如脱兔
ThinkPad风扇控制革命:TPFanCtrl2让你的笔记本静如处子,动如脱兔 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2
作为一名ThinkPad用户…