以API方式调用C# dll,使用OneNote2013 sp1实现OCR识别本地图片
http://www.cnblogs.com/Charltsing/p/OneNoteOCRAPI.html
OneNote2013 OCR API调用使用说明
2019.4.17
使用说明:
1、安装干净的Office 2013,再安装Office 2013 sp1。不要安装其它OneNote更新(特别是KB3115256)。
2、在OneNote历史记录里面的笔记本回收站,选中禁用此笔记本的历史记录,如果有多个笔记本,最好都禁用。
3、确认OneNote里面至少有一个笔记本(notebook)和一个分区(section)。这个应该OneNote默认提供的。然后新建一个页面检查插入图片之后,是否可以从图片中获得文本,能获取说明OneNote OCR功能正常。
4、打开OneNoteAPI.xlsm,运行VBA代码TestOcrB或者TestOCR,观察立即窗口输出是否正确。
5、API函数第一次运行耗时会略长(因为要启动OneNote),之后识别速度会正常。
6、在I7 CPU测试识别速度:小图片大约几十毫秒,大图片可能会上千毫秒。
7、需要简体OneNote2013 Sp1,其它版本不支持(由于OneNote对象库不能嵌入,需要重新编译才能支持其他版本)。
运行环境说明:
1、只支持简体中文版的OneNote2013,并具备至少一个Notebook(笔记本)和一个Section(分区),API运行时会在某个分区上面创建page,插入图片识别后删除。
2、禁用笔记本历史记录,(因为每次OCR都要创建一个page,禁用回收站可以避免文档加载变慢或出现其它错误。)
3、由于OneNote的原因,多次运行可能会在某个分区残留多个名为"无标题页"的page,可以调用API命令清除。
4、如果安装了多个版本的Office(不建议这么做),应保证office2013 sp1为最后安装版本。
5、程序需要.net 4.0环境https://www.microsoft.com/zh-CN/download/details.aspx?id=17718
6、目前只支持简体中文版,其它语言版本需要修改代码。
可能的错误:
1、提示缓冲区溢出。请增加Buffersize。
2、返回的识别文本长度为0。请增加延时。(程序第一次运行耗时会略长,之后会正常。)
3、Excel突然闪退。这与OneNote有关,请增加延时。如果无效请卸载Office2013,重新安装干净的版本及SP1,不要使用精简版的Office 2013。
4、小图片始终无法识别。请在OneNote里面检查是否识别功能处于禁用状态,如果无法选择中文,请重新安装或者修复Office2013或者卸载更新。2016年7月25日OneNote的一个更新可能会造成这个问题(KB3115256)。
5、任何时候,如果发现OCR识别错误,请先检查OneNote插入此图片之后获取文本功能是否正常。
如何卸载Windows更新
Windows 10:在更新历史记录里面,点击卸载更新,选择KB3115256
****************************************
4月21日测试:
OneNote2013 SP1没有问题(如果想识别小图片,请不要安装KB3115256)。
OneNote2016 简体中文版可以使用(16.0.4266.1001),但是无法识别小图片。
Office365和Office2019已经不再提供OneNote2016的功能,取代的是OneNote for Windows10
****************************************
下载 无需安装部署,直接运行。
**********
联系QQ:564955427
QQ群:550672198(验证信息:Onenote OCR)
以API方式调用C# dll,使用OneNote2013 sp1实现OCR识别本地图片的更多相关文章
- VBA通过C#以API方式调用JS脚本函数
http://www.cnblogs.com/Charltsing/p/JSDotNetAPI.html 在网页采集中,很多时候需要运行网站下载的某个js文件中的函数,以计算Request参数.VBA ...
- Java API方式调用Kafka各种协议
众所周知,Kafka自己实现了一套二进制协议(binary protocol)用于各种功能的实现,比如发送消息,获取消息,提交位移以及创建topic等.具体协议规范参见:Kafka协议 这套协议的具 ...
- 用PHP调用证件识别接口识别本地图片
前置条件 在开始前,请作如下准备:1.学会用PHP输出“Hello World” 2.去聚合数据申请证件识别专用的KEY:https://www.juhe.cn/docs/api/id/153 操作步 ...
- 用HTTP方式调用gearman任务处理
本来以为是个挺美好的东西,结果... 这样的方式非常不安全,尤其是假设暴露在公网地址,非常easy被攻击,并且gearman的http服务远没有专业的webserver健壮. 攻击方式非常easy:t ...
- Windows API方式直接调用C#的DLL,支持多音字转拼音、Gzip解压缩、公式计算(VBA、C++、VB、Delphi甚至java都可以)
原始链接 https://www.cnblogs.com/Charltsing/p/DllExport.html 这两年,我在VBA应用方面一直有几大痛点:1.多音字转拼音:2.64位下的GZIP解压 ...
- C#调用C++ DLL动态库的两种方式
第一种方式:C++导出函数, c#dllimport 的方式 在很多地方都看到过,如[dllimport "user32.dll"]这种代码,调用windows API,就是通过这 ...
- AutoCAD.NET 不使用P/Invoke方式调用acad.exe或accore.dll中的接口(如acedCommand、acedPostCommand等)
使用C#进行AutoCAD二次开发,有时候由于C#接口不够完善,或者低版本AutoCAD中的接口缺少,有些工作不能直接通过C#接口来实现,所以需要通过P/Invoke的方式调用AutoCAD的其他DL ...
- Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)
文章目录: 1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Ap ...
- C# 调用C++ dll 返回char*调用方式(StringBuilder乱码)
// CDLLDemo.cpp : 定义 DLL 应用程序的导出函数. // #include "stdafx.h" #include "string.h" # ...
随机推荐
- 移动设备分辨率(终于弄懂了为什么移动端设计稿总是640px和750px)
在我开始写移动端页面至今,一直有2个疑问困扰着我,我只知道结果但不知道为什么 问题1:为什么设计师给的设计稿总是640px或750px(现在一般以Phone6为基准,给的750px) 问题2:为什么我 ...
- SpringBoot 2.X集成Hive-jdbc 3.1.1
最近公司有一个需求,需求的内容是根据用户页面选择的参数条件查询Hive,数量量大致是300万以内,要求3秒响应.使用的其它的技术就不要说了,先说说SpingBoot集成Hive-jdbc吧,网上虽然有 ...
- [WP]BugkuCtf - pwn2
1.首先运行一下该程序 2.我们权限不够于是去修改一下权限(改前,改后) 3.改后我们重新运行一下(123是输入的语句) 4.拖进IDA,查看字符串,此处应该就是得到flag的地方 5.之后我们查看m ...
- Spring Cloud Eureka 你还在让它裸奔吗??
前些天栈长在微信公众号Java技术栈分享了 Spring Cloud Eureka 最新版 实现注册中心的实战教程:Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版 ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之三 || Swagger的使用 3.1
常见问题 1.经常有小伙伴遇到这个错误 这是因为接口json文档定义和调用不是一个 1.定义: ConfigureServices 方法中的 services.AddSwaggerGen 注册的一个 ...
- 使用 coverlet 查看.NET Core应用的测试覆盖率
代码覆盖(Code coverage)是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率. Visual Studio 2017的企业版可以直接查看测试的代码覆盖率, ...
- .NET Core微服务之基于IdentityServer建立授权与验证服务(续)
Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇我们基于IdentityServer4建立了一个AuthorizationServer,并且继承了QuickStartUI,能够成功 ...
- Node.js学习(第一章:Node.js安装和模块化理解)
Node.js安装和简单使用 安装方法 简单的安装方式是直接官网下载,然后本地安装即可.官网地址:nodejs.org Windows系统下,选择和系统版本匹配的.msi后缀的安装文件.Mac OS ...
- 遇到一道经典的java面试题
在文件 nameList.txt 中按下图格式存放着超过50万人的姓名与身份证信息.请使用您熟悉的编程语言(Java或C/C++)编写一段程序, 将出生日期落在1995年1月1日与1999年12月31 ...
- 从零开始学安全(四十六)●sqli-labs 1-4关 涉及的知识点
Less-1 到Less-4 基础知识注入 我们可以在 http://127.0.0.1/sqllib/Less-1/?id=1 后面直接添加一个 ‘ ,来看一下效果: 从上述错误当中,我们可以看到 ...