ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: 美好未来686

[求助] VBA 怎么调用OCR识别图片的功能

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-1-14 11:22 来自手机 | 显示全部楼层
美好未来686 发表于 2019-1-14 11:13
这种接口的代码是怎么写的 ,给个例子看看

http://5809c7f4.nat123.cc:15216/bsbm/pdo/eh/a17/idCard/idCard.html
百度的接口,图片要2m以下,如果手机拍的要压缩一下。上面是百度的接口,可以看看效果。

TA的精华主题

TA的得分主题

发表于 2019-1-14 13:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
百度的OCR票据接口
https://ai.baidu.com/docs#/OCR-API/5099e085

excel 不太适合做这种事,你自己适配吧

TA的精华主题

TA的得分主题

发表于 2019-1-14 19:00 | 显示全部楼层
fxl447098457 发表于 2019-1-14 08:35
有啊。很多时候有别的语言代码,需要你转化成vba的表达方式。

代码实现的逻辑

大神教我

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-15 11:29 | 显示全部楼层
liucqa 发表于 2019-1-14 10:53
OneNote我写过,c#的。                    

可以把你的C#写的程序封装成DLL 给我调用吗?

TA的精华主题

TA的得分主题

发表于 2019-1-20 13:12 来自手机 | 显示全部楼层
美好未来686 发表于 2019-1-14 11:13
这种接口的代码是怎么写的 ,给个例子看看

<%

rem http://demon.tw/programming/vbs-post-file.html
rem 参考上面写的vbs上传照片ocr的接口
Class XMLUpload
    Private xmlHttp
    Private objTemp
    Private adTypeBinary, adTypeText
    Private strCharset, strBoundary

    Private Sub Class_Initialize()
        adTypeBinary = 1
        adTypeText = 2
        Set xmlHttp = CreateObject("Msxml2.XMLHTTP")
        Set objTemp = CreateObject("ADODB.Stream")
        objTemp.Type = adTypeBinary
        objTemp.Open
        strCharset = "utf-8"
        strBoundary = GetBoundary()
    End Sub

    Private Sub Class_Terminate()
        objTemp.Close
        Set objTemp = Nothing
        Set xmlHttp = Nothing
    End Sub

    '指定字符集的字符串转字节数组
    Public Function StringToBytes(ByVal strData, ByVal strCharset)
        Dim objFile
        Set objFile = CreateObject("ADODB.Stream")
        objFile.Type = adTypeText
        objFile.Charset = strCharset
        objFile.Open
        objFile.WriteText strData
        objFile.Position = 0
        objFile.Type = adTypeBinary
        If UCase(strCharset) = "UNICODE" Then
            objFile.Position = 2 'delete UNICODE BOM
        ElseIf UCase(strCharset) = "UTF-8" Then
            objFile.Position = 3 'delete UTF-8 BOM
        End If
        StringToBytes = objFile.Read(-1)
        objFile.Close
        Set objFile = Nothing
    End Function

    '获取文件内容的字节数组
    Private Function GetFileBinary(ByVal strPath)
        Dim objFile
        Set objFile = CreateObject("ADODB.Stream")
        objFile.Type = adTypeBinary
        objFile.Open
        objFile.LoadFromFile strPath
        GetFileBinary = objFile.Read(-1)
        objFile.Close
        Set objFile = Nothing
    End Function

    '获取自定义的表单数据分界线
    Private Function GetBoundary()
        Dim ret(12)
        Dim table
        Dim i
        table = "abcdefghijklmnopqrstuvwxzy0123456789"
        Randomize
        For i = 0 To UBound(ret)
            ret(i) = Mid(table, Int(Rnd() * Len(table) + 1), 1)
        Next
        GetBoundary = "---------------------------" & Join(ret, Empty)
    End Function

    '设置上传使用的字符集
    Public Property Let Charset(ByVal strValue)
        strCharset = strValue
    End Property

    '添加文本域的名称和值
    Public Sub AddForm(ByVal strName, ByVal strValue)
        Dim tmp
        tmp = "\r\n--$1\r\nContent-Disposition: form-data; name=""$2""\r\n\r\n$3"
        tmp = Replace(tmp, "\r\n", vbCrLf)
        tmp = Replace(tmp, "$1", strBoundary)
        tmp = Replace(tmp, "$2", strName)
        tmp = Replace(tmp, "$3", strValue)
        objTemp.Write StringToBytes(tmp, strCharset)
    End Sub

    '设置文件域的名称/文件名称/文件MIME类型/文件路径或文件字节数组
    Public Sub AddFile(ByVal strName, ByVal strFileName, ByVal strFileType, ByVal strFilePath)
        Dim tmp
        tmp = "\r\n--$1\r\nContent-Disposition: form-data; name=""$2""; filename=""$3""\r\nContent-Type: $4\r\n\r\n"
        tmp = Replace(tmp, "\r\n", vbCrLf)
        tmp = Replace(tmp, "$1", strBoundary)
        tmp = Replace(tmp, "$2", strName)
        tmp = Replace(tmp, "$3", strFileName)
        tmp = Replace(tmp, "$4", strFileType)
        objTemp.Write StringToBytes(tmp, strCharset)
        objTemp.Write GetFileBinary(strFilePath)
    End Sub

    '设置multipart/form-data结束标记
    Private Sub AddEnd()
        Dim tmp
        tmp = "\r\n--$1--\r\n"
        tmp = Replace(tmp, "\r\n", vbCrLf)
        tmp = Replace(tmp, "$1", strBoundary)
        objTemp.Write StringToBytes(tmp, strCharset)
        objTemp.Position = 2
    End Sub

    '上传到指定的URL,并返回服务器应答
    Public Function Upload(ByVal strURL)
        Call AddEnd
        xmlHttp.Open "POST", strURL, False
        xmlHttp.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & strBoundary
        'xmlHttp.setRequestHeader "Content-Length", objTemp.size
        xmlHttp.Send objTemp
        Upload = xmlHttp.responseText
    End Function
End Class

Dim UploadData
Set UploadData = New XMLUpload
UploadData.Charset = "utf-8"
UploadData.AddForm "content", "Hello world" '文本域的名称和内容
rem UploadData.AddFile "file", "test.jpg", "image/jpg", "test.jpg"
Response.Write Server.MapPath("./test.jpg")
rem VBA 下面这句要修改为
rem uploadFile="test.jpg"
uploadFile=Server.MapPath("./test.jpg")
UploadData.AddFile "file", "test.jpg", "image/jpg", uploadFile

rem WScript.Echo UploadData.Upload("http://5809c7f4.nat123.cc:15216/bsbm/pdo/eh/a17/invoice/index.php")
rem VBA下面这句要修改为
rem debug.print UploadData.Upload("http://5809c7f4.nat123.cc:15216/bsbm/pdo/eh/a17/invoice/handle.php")

Response.Write UploadData.Upload("http://5809c7f4.nat123.cc:15216/bsbm/pdo/eh/a17/invoice/handle.php")
Set UploadData = Nothing
%>





















评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-2-8 17:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-4-29 11:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-12-12 20:18 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-12-14 22:43 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 02:05 , Processed in 0.044021 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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