作为LEAD Technologies 25周年纪念的一部分,我们正在搞一个“25天收集25个项目来展示LEAD功能强度和易用性”的活动。

它是做什么的

该C#控制台应用程序可以扫描页面,用OCR提取文本,并使用LEADTOOLS第19版将其保存为PDF格式。

所使用的功能

· OCR

· PDF

· TWAIN

 

开发进程日志

大家好,我是法瑞斯。我要创建一个控制台应用程序,该程序可以使用TWAIN来扫描扫描仪中的页面,识别扫描页面中的文本,最后,将所识别的页面保存为可搜索的PDF文件。

在这个项目中,我会使用LEADTOOLS识别成像SDK和使用了.NET C#编程语言的程序。

LEADTOOLS的该识别成像SDK为我提供了用TWAIN扫描仪进行扫描的功能,并且可以识别图像中使用了光学字符识别(OCR)的文本,并将所识别出的图像保存为文档格式(PDF,DOCX,TXT)。

应当指出的是,该应用程序可以识别英文字符的印刷体,而不能识别手写体文本。不过,既然LEADTOOLS OCR引擎可以支持多国语言,而且该专业引擎又支持智能字符识别(ICR),我们完全可以对其进行自定义,以满足程序员的需求。

首先,我将以Visual Studio 2010中的一个新的控制台应用程序开始。然后,我也将增加TWAIN所需的SDK引用,OCR和公文写作的各项功能。

现在我已经添加了用于启动TWAIN会话、用于列举连接到设备的扫描仪,以及用于从扫描仪获得图像所必需的代码。这花了大约30分钟的工作。

接下来需要进行的是,对所获取的图像进行识别。 LEADTOOLS可以支持3种不同的OCR引擎:优势引擎,专业引擎和阿拉伯语引擎。在我的项目中,我将使用优势引擎。

该OCR引擎必须首先被启动;然后,图像中的文字应放在识别区域的内部;这样,图像将准备好进行识别。对于如何将图像分区,我使用了AutoZone方法,因为我要识别整个页面,而不是它的特定部分。在查阅LEADTOOLS在线帮助文档中有关AutoZone方法的资料时,我找到了一个真正有用的代码示例:

Documentation: IOcrPage

现在,添加可以对所扫描的图像进行识别的代码,这一部分我已经完成。这花了大约一个小时的时间。

下一步是要将识别出来的文档保存为可搜索的PDF文件。幸运的是,我之前所引用的例子中显示了用来实现这一目标的代码。所有我需要做的就是,用上一步中所提到的这种方式来添加代码,以便保存识别出的文档。程序员可以修改该项目的一部分,以便提示用户必须指定自己希望将输出文件保存为哪些文件格式,并且指定输出文件的名称。

现在这一部分已经完成,历时约30分钟。

最后,我会努力地修改错误疏漏之处并对代码进行测试。我将分别在连接两个扫描仪时,或者只连接一个扫描仪时,测试该应用程序。因为这是一个控制台应用程序,我将在当前操作下添加多行代码到控制台,以便使用户更加了解该应用程序。

最后一部分工作现在也已经完成,花了大约2个小时的时间。该项目的全部工作时间总计,包括开发、调试和测试程序,约4小时。如果没有LEADTOOLS SDK的帮助,想要在2小时内完成核心功能的代码,进而在不到一天的工作时间里完成整个应用程序的开发,这是不可能的。

下载该项目

该示例项目的源代码您可以点击

进行下载。

要运行这个示例代码,请将文件解压缩至:C:\LEADTOOLS 19\Examples\DotNet\CS 目录下

支持

关于其他产品的更多信息,请访问我们的官方网站

欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。

同时欢迎您使用评估版期间的免费技术支持