PDF OCR

与。net OCR LEADTOOLS编程

LEADTOOLS OCR类库提供的方法将光学字符识别(OCR)技术合并到应用程序。OCR用于处理位图文档图像到文本。

LEADTOOLS。net OCR工具包后安装到系统,编程LEADTOOLS OCR可以开始了。请注意,OCR功能之前,必须解锁OCR属性,方法和事件可以使用。关于解锁引导功能的更多信息,请参考解锁特殊的引导功能

在您的应用程序中开始使用LEADTOOLS为。net OCR,添加引用Leadtools.Ocr.dllLeadtools.Document.Writer.dll组件在. net应用程序中。这些程序集包含的各种接口、类、结构和代表与LEADTOOLS OCR程序使用。

自从工具包支持多个OCR引擎,引擎的实际代码接口存储在一个单独的组装后,将动态加载的一个实例IOcrEngine创建接口。因此,确保发动机装配计划使用驻留的旁边Leadtools.Ocr.dll作为sembly。您可以添加发动机总成作为参考你的社区需要自动检测依赖,即使LEADTOOLS这不是必需的。

LEADTOOLS提供方法:

使用OCR引擎

LEADTOOLS使用OCR处理与OCR引擎和OCR交互文档,其中包含页面的列表。OCR处理之间的通信会话LEADTOOLS OCR和一个OCR引擎安装在系统上。这OCR处理是一个内部结构,它包含所有必要的信息识别、获取和设置信息,文本验证。

的轮廓识别的一般步骤

  1. 选择您希望使用的引擎类型并创建的实例IOcrEngine接口。有关更多信息,请参考创建一个OCR引擎实例

  2. 启动的OCR引擎IOcrEngine.Startup方法。有关更多信息,请参考启动和关闭发动机

  3. 可选的。如果需要保存,建立一个OCR文档与一个或多个页面。有关更多信息,请参考使用OCR页面

  4. 可选的。建立区域在页面上(s),手动或自动。(这是可选的。一个页面只能看到有或没有区域。)有关更多信息,请参考使用OCR区

  5. 可选的。设置活动所使用的语言是OCR引擎。(默认语言是英语)。有关更多信息,请参考使用OCR语言

  6. 可选的。设置属性为拼写检查。有关更多信息,请参考OCR拼写字典

  7. 可选的。设置任何特殊识别模块选项。这是要求只有在页面包含区域,它可以自动或手动创建。有关更多信息,请参考OCR识别页面在。net OCR LEADTOOLS使用有机磁共振

  8. 识别。有关更多信息,请参考OCR识别页面

  9. 可选的。保存识别结果,如果需要的话。结果可以保存到一个文件或内存。有关更多信息,请参考OCR识别页面

  10. OCR引擎完成后关闭。有关更多信息,请参考启动和关闭发动机

步骤4、5、6和7可以做几乎在任何顺序,只要启动后的步骤进行OCR引擎和之前认识一个页面。

有关发动机总成的更多信息,请参考OcrEngineType文件包含在您的应用程序

LEADTOOLS OCR引擎可以使用的方法

代码示例

c#

/ /假设你添加“使用Leadtools.Codecs;”,"using Leadtools.Ocr;" and "using Leadtools.Document.Writer;" at the beginning of this class/ / * * *步骤1:指定发动机类型和创建IOcrEngine接口的一个实例。/ /这个例子将使用LEADTOOLS OCR模块——铅引擎用在相同的过程IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);/ / * * *第二步:启动引擎。/ /使用默认参数ocrEngine.Startup (,,,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);/ / * * *第三步:创建一个OCR文档与一个或多个页面。IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument ();/ /添加所有气管无名动脉瘘管的多页图像的页面文档ocrDocument.Pages.AddPages (@“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”,1,1,);/ / * * *步骤4:(可选)建立区域在页面上(s),手动或自动/ /自动分区ocrDocument.Pages.AutoZone ();/ / * * *第五步:(可选)设置活动所使用的语言是OCR引擎/ /使英语和德语语言ocrEngine.LanguageManager.EnableLanguages (字符串[]{“en”,“德”});/ / * * *第六步:(可选)设置拼写检查引擎/ /启用拼写检查系统ocrEngine.SpellCheckManager。SpellCheckEngine = OcrSpellCheckEngine.Native;/ / * * *第七步:(可选)设置任何特殊识别模块选项/ /设置分区方法首先在第一页带图形所以它不会被认可OcrZone OcrZone = ocrDocument.Pages [0] .Zones [0];ocrZone。ZoneType = OcrZoneType.Graphic;ocrDocument.Pages [0]。区[0]= ocrZone;/ / * * *第八步:识别ocrDocument.Pages.Recognize ();/ / * * *步骤9:保存识别结果/ /将结果保存到一个PDF文件ocrDocument.Save (@“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,);ocrDocument.Dispose ();/ / * * *第十步:关闭OCR引擎完成后ocrEngine.Shutdown ();ocrEngine.Dispose ();

VB

假设你还说“进口Leadtools.Ocr”“进口Leadtools.Document.Writer”开始时“* * *步骤1:指定IOcrEngine的发动机类型和创建一个实例接口这个例子将使用LEADTOOLS OCR模块——铅引擎和使用它相同的过程昏暗的ocrEngine IOcrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)“* * *第二步:启动引擎。的使用默认的参数ocrEngine.Startup (Nothing, Nothing, Nothing,“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”)“* * *第三步:创建一个OCR文档与一个或多个页面昏暗的ocrDocument IOcrDocument = ocrEngine.DocumentManager.CreateDocument ()“添加所有气管无名动脉瘘管的多页图像的页面文档ocrDocument.Pages.AddPages (“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”,1,1,没有什么)“* * *步骤4:(可选)建立区域页面(s),手动或自动“自动分区ocrDocument.Pages.AutoZone(没有)“* * *第五步:(可选)设置活跃的语言使用通过OCR引擎使英语和德语语言ocrEngine.LanguageManager.EnableLanguages (New String() {“en”,“德”})“* * *第六步:(可选)设置拼写检查引擎“启用拼写检查引擎ocrEngine.SpellCheckManager。SpellCheckEngine = OcrSpellCheckEngine.Native“* * *第七步:(可选)设置任何特殊识别模块选项“改变分区方法第一个区第一页图片所以它不会被认可昏暗的ocrZone ocrZone = ocrDocument.Pages (0) .Zones (0)ocrZone。ZoneType = OcrZoneType.GraphicsocrDocument.Pages .Zones (0) (0) = ocrZone“* * *第八步:识别文档ocrDocument.Pages.Recognize(没有)“* * *步骤9:保存识别结果将结果保存到一个PDF文件ocrDocument.Save (“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,没有什么)ocrDocument.Dispose ()“* * *第十步:关闭OCR引擎完成后ocrEngine.Shutdown ()ocrEngine.Dispose ()

下面的例子演示了一些不同的方法可以使用LEADTOOLS OCR引擎。

使用IOcrPage

(或LEADTOOLS OCR图像文件RasterImage与可选对象)和获取文本格式和位置信息。在这种模式下,一个IOcrDocument对象不需要因为结果不会被保存。使用IOcrEngine.CreatePage快速创建一个方法IOcrPageRasterImage(如:直接调用必要的方法IOcrPage.Recognize),然后获得文本直接使用IOcrPage.GetTextIOcrPage.GetRecognizedCharacters

注意:这种模式只支持LEADTOOLS OCR模块——铅引擎。调用IOcrEngine.CreatePage使用任何其它OCR引擎将会导致一个异常被抛出。

下面的示例使用一个OCR页面没有文档。

c#

/ /创建引擎实例使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)){/ /启动引擎ocrEngine.Startup (,,,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);/ /加载RasterImage第一页RasterImage RasterImage = ocrEngine.RasterCodecsInstance.Load (@“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”1);/ /创建一个OCR页面从这个形象,转移所有权的RasterImage对象使用(IOcrPage ocrPage = ocrEngine。CreatePage (rasterImage OcrImageSharingMode.AutoDispose)){/ /识别页面ocrPage.Recognize ();/ /显示所有的文本区域(intzoneIndex = 0;zoneIndex < ocrPage.Zones.Count;zoneIndex + +){字符串文本= ocrPage.GetText (zoneIndex);Console.WriteLine(文本);}}/ /时,引擎将自动关闭处理}

VB

“创建引擎实例使用ocrEngine IOcrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)“启动引擎ocrEngine.Startup (Nothing, Nothing, Nothing,“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”)第一页的负载作为一个RasterImage昏暗的rasterImage rasterImage = ocrEngine.RasterCodecsInstance.Load (“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”,1)“创建一个OCR页面形象,RasterImage转移所有权对象使用ocrPage IOcrPage = ocrEngine。CreatePage (RasterImage OcrImageSharingMode.AutoDispose)“认识到页面ocrPage.Recognize(没有)的显示文本所有区域为整数zoneIndex ocrPage.Zones = 0。数- 1昏暗的文本字符串= ocrPage.GetText (zoneIndex)Console.WriteLine(文本)下一个结束使用”时,引擎将自动关闭处理被称为结束使用

使用IOcrDocument

光学字符识别结果保存到最后文件如PDF或多克斯需要的一个实例IOcrDocument。一个或多个OCR页面可以添加到文档,然后各种保存方法可以调用来创建最终的文档。

IOcrDocument可以用在两个方面:

基于内存的文件

在基于内存模式下,OCR页面之前需要在内存中保存。这个文档时不建议大量的页面和一个基于文件的文档或LEADTOOLS临时文件格式DocumentFormat.Ltd是必需的。

在基于内存的IOcrDocument,IOcrPageCollection保存页面。任何或所有的页面都可以在任何时候被认可和页面可以添加或删除。

下面的例子使用了一个基于内存的文档创建一个多页的PDF文件。注意所有的页面都保存在内存中保存操作。

c#

/ /创建引擎实例使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)){/ /启动引擎ocrEngine.Startup (,,,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);/ /在内存中创建OCR文档使用(IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument (,OcrCreateDocumentOptions.InMemory)){字符串imageFile =@“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”;/ /将所有的页面添加到文档中ocrDocument.Pages.AddPages (imageFile, 1, -1,);/ /识别所有的页面ocrDocument.Pages.Recognize ();/ /保存PDF格式的识别结果ocrDocument.Save (@“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,);}}

VB

“创建引擎实例使用ocrEngine IOcrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)“启动引擎ocrEngine.Startup (Nothing, Nothing, Nothing,“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”)“创建OCR文档内存使用ocrDocument IOcrDocument = ocrEngine.DocumentManager。CreateDocument(没什么,OcrCreateDocumentOptions.InMemory)昏暗的imageFile字符串=“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”“将所有的页面添加到文档中ocrDocument.Pages.AddPages (imageFile, 1, -1, Nothing)“认识的所有页面ocrDocument.Pages.Recognize(没有)“拯救识别结果PDF格式ocrDocument.Save (“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,没有什么)结束使用结束使用

基于文件的文件

在基于文件的文档模式,OCR页面不需要之前在内存中保存。这种模式是最好的文档时大量的页面。

在基于文件的IOcrDocument模式下,IOcrPageCollection只存储的页面视图。当添加一个页面,当前识别数据的快照保存到文档。这些数据不能修改,页面不再需要。页面之前必须承认他们被添加到文件和页面只能补充道。他们不能被删除。

下面的例子使用了一个基于文件的文档创建一个多页的PDF文件。注意页面处理后不需要识别和保存操作。

c#

/ /创建引擎实例使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)){/ /启动引擎ocrEngine.Startup (,,,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);/ /创建一个基于文件的OCR文档使用(IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument (,OcrCreateDocumentOptions.AutoDeleteFile)){字符串imageFile =@“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”;/ /得到文件的页数intpageCount = ocrEngine.RasterCodecsInstance.GetTotalPages (imageFile);/ /创建一个页面(int页面= 1;页< = pageCount;+ +页){/ /加载RasterImageRasterImage RasterImage = ocrEngine.RasterCodecsInstance.Load (imageFile, page);/ /创建一个OCR页面从这个形象,转移所有权的RasterImage对象使用(IOcrPage ocrPage = ocrEngine。CreatePage (rasterImage OcrImageSharingMode.AutoDispose)){/ /识别页面ocrPage.Recognize ();/ /将其添加到文档中ocrDocument.Pages.Add (ocrPage);/ /页面将在这里处理及其内存释放}}/ /保存PDF格式的识别结果ocrDocument.Save (@“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,);}}

VB

“创建引擎实例使用ocrEngine IOcrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)“启动引擎ocrEngine.Startup (Nothing, Nothing, Nothing,“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”)创建一个基于文件的OCR文档使用ocrDocument IOcrDocument = ocrEngine.DocumentManager。CreateDocument(没什么,OcrCreateDocumentOptions.AutoDeleteFile)昏暗的imageFile字符串=“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”的页面的数量文档昏暗的pageCount Integer = ocrEngine.RasterCodecsInstance.GetTotalPages (imageFile)“创建页面pageCount页面作为Integer = 1“加载RasterImage昏暗的rasterImage rasterImage = ocrEngine.RasterCodecsInstance.Load (imageFile, page)“创建一个OCR页面形象,RasterImage转移所有权对象使用ocrPage IOcrPage = ocrEngine。CreatePage (rasterImage OcrImageSharingMode.AutoDispose)“认识到页面ocrPage.Recognize(没有)将其添加到文档ocrDocument.Pages.Add (ocrPage)的页面将被处理和内存释放结束使用下一个“拯救识别结果PDF格式ocrDocument.Save (@“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,没有什么)结束使用结束使用

基于文件的文档也可以保存和持久化,继续添加页面,或者把它转换成最终的文档格式在稍后的时间。下面的例子展示了如何做到这一点。

c#

私人静态无效Test4 (){/ /创建引擎实例IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);/ /启动引擎ocrEngine.Startup (,,,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);字符串imageFile1 =@“C: \ LEADTOOLS21 \资源\ \ Ocr1.tif图像”;字符串imageFile2 =@“C: \ LEADTOOLS21 \资源\ \ Ocr2.tif图像”;/ /创建一个基于文件的OCR文档/ /通过文件名称(名称将被重用),告诉文档不删除它字符串documentFile =@“C: \ LEADTOOLS21 \资源\ \ document.bin图像”;使用(IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument (documentFile, OcrCreateDocumentOptions.None)){/ /验证文档没有任何页面System.Diagnostics.Debug.Assert (ocrDocument.Pages。数= = 0);/ /添加一个页面RasterImage RasterImage = ocrEngine.RasterCodecsInstance.Load (imageFile1, 1);使用(IOcrPage ocrPage = ocrEngine。CreatePage (rasterImage OcrImageSharingMode.AutoDispose)){ocrPage.Recognize ();ocrDocument.Pages.Add (ocrPage);}/ /这里的文档处理,但文件将不会被删除}/ /重新加载代码文档使用(IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument (documentFile, OcrCreateDocumentOptions.LoadExisting)){/ /验证文档有一个页面System.Diagnostics.Debug.Assert (ocrDocument.Pages。数= = 1);/ /添加另一个页面RasterImage RasterImage = ocrEngine.RasterCodecsInstance.Load (imageFile2, 1);使用(IOcrPage ocrPage = ocrEngine。CreatePage (rasterImage OcrImageSharingMode.AutoDispose)){ocrPage.Recognize ();ocrDocument.Pages.Add (ocrPage);}/ /验证文档有2页System.Diagnostics.Debug.Assert (ocrDocument.Pages。数= = 2);/ /保存文档ocrDocument.Save (@“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,);/ /结果将是两页的PDF文件}/ /最后,删除文档文件System.IO.File.Delete (documentFile);ocrEngine.Dispose ();}

VB

“创建引擎实例昏暗的ocrEngine IOcrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)“启动引擎ocrEngine.Startup (Nothing, Nothing, Nothing,“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”)昏暗的imageFile1字符串=“C: \ LEADTOOLS21 \资源\ \ Ocr1.tif图像”昏暗的imageFile2字符串=“C: \ LEADTOOLS21 \资源\ \ Ocr2.tif图像”创建一个基于文件的OCR文档通过文件名称(名称将重用),告诉文档不删除它昏暗的documentFile字符串=“C: \ LEADTOOLS21 \资源\ \ document.bin图像”使用ocrDocument IOcrDocument = ocrEngine.DocumentManager。CreateDocument (documentFile OcrCreateDocumentOptions.None)“验证文件没有任何页面System.Diagnostics.Debug.Assert (ocrDocument.Pages。数= 0)“添加页面昏暗的rasterImage rasterImage = ocrEngine.RasterCodecsInstance.Load (imageFile1, 1)使用ocrPage IOcrPage = ocrEngine。CreatePage (rasterImage OcrImageSharingMode.AutoDispose)ocrPage.Recognize(没有)ocrDocument.Pages.Add (ocrPage)结束使用“这里的文件处理文件将不会被删除结束使用“重新加载代码文件使用ocrDocument IOcrDocument = ocrEngine.DocumentManager。CreateDocument (documentFile OcrCreateDocumentOptions.LoadExisting)验证文档的一页System.Diagnostics.Debug.Assert (ocrDocument.Pages。数= 1)“添加另一个页面昏暗的rasterImage rasterImage = ocrEngine.RasterCodecsInstance.Load (imageFile2, 1)使用ocrPage IOcrPage = ocrEngine。CreatePage (rasterImage OcrImageSharingMode.AutoDispose)ocrPage.Recognize(没有)ocrDocument.Pages.Add (ocrPage)结束使用“验证文件有2页System.Diagnostics.Debug.Assert (ocrDocument.Pages。数= 2)“保存文档ocrDocument.Save (“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”DocumentFormat.Pdf,没有什么)的结果将是两页的PDF文件结束使用最后,删除文档文件System.IO.File.Delete (documentFile)ocrEngine.Dispose ()

使用IOcrAutoRecognizeManager

以前的所有技术要求低级代码加载一个页面,承认它,并将它添加到一个文件。LEADTOOLS OCR引擎也支持执行相同的任务使用一次以上“发射后不管”IOcrAutoRecognizeManager接口。在这个高层OCR,直接输入图像转换到输出格式仅使用一个方法使用的最佳选项。

c#

/ /创建引擎实例使用(IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)){/ /启动引擎ocrEngine.Startup (,,,@“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”);/ /将气管无名动脉瘘管的多页图像转换成PDF文档ocrEngine.AutoRecognizeManager.Run (@“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”,@“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”,DocumentFormat.Pdf,,);}

VB

“创建引擎实例使用ocrEngine IOcrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD)“启动引擎ocrEngine.Startup (Nothing, Nothing, Nothing,“C: \ LEADTOOLS21 \ Bin \常见\ OcrLEADRuntime”)气管无名动脉瘘管的多页图像转换为一个PDF文档ocrEngine.AutoRecognizeManager.Run (_“C: \ LEADTOOLS21 \资源\ \ Ocr.tif图像”,_“C: \ LEADTOOLS21 \资源\ \ Document.pdf图像”,_DocumentFormat.Pdf,_没什么,_没有什么)结束使用

LEADTOOLS成像、医学和文档
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。