本教程演示如何OCR图像和结果导出到一个JSON文件c# Windows控制台应用程序使用LEADTOOLS SDK。
概述 | |
---|---|
总结 | 本教程介绍了如何将OCR结果保存到一个JSON文件在一个c# Windows控制台应用程序。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(3 KB) |
平台 | c# Windows控制台应用程序 |
IDE | Visual Studio 2017中,2019年 |
开发许可 | 下载LEADTOOLS |
试试用另一种语言 |
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前光学字符识别结果导出到JSON - c#控制台教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果你没有这个项目,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Document.Sdk
Newtonsoft.Json
如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Dotnet4 \ x64
:
Leadtools.dll
Leadtools.Codecs.dll
Leadtools.Document.dll
Leadtools.Document.Writer.dll
Leadtools.Ocr.dll
Leadtools.Ocr.LEADEngine.dll
Leadtools.Pdf.dll
Newtonsoft.Json.dll
对于一个完整的列表的应用程序所需的DLL文件,请参考文件包含在您的应用程序。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。细节包括教程不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS NuGet和本地引用设置许可中会详细介绍添加引用和设置一个许可证教程。
与项目创建、添加引用,许可,可以开始编码。
在解决方案资源管理器,打开Program.cs
。添加以下语句使用
块顶部:
使用系统;
使用先;
使用System.Collections.Generic;
使用Newtonsoft.Json;
使用Leadtools;
使用Leadtools.Ocr;
使用Leadtools.Document;
添加一个新方法InitOcrEngine ()
返回IOcrEngine
然后在调用它Main ()
方法后SetLicense ()
方法调用,如下所示。
静态无效主要(字符串[]参数)
{
字符串文件=@“C: \ LEADTOOLS22 \资源\ \ leadtools.pdf图像”;
SetLicense ();
IOcrEngine ocrEngine = InitOcrEngine ();
OCRandSaveResults (ocrEngine、文件);
}
将以下代码添加到InitOcrEngine ()
初始化方法IOcrEngine
。
静态IOcrEngine InitOcrEngine ()
{
/ /初始化OCR引擎
IOcrEngine ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);
ocrEngine.Startup (零,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);
返回ocrEngine;
}
创建一个新的方法在程序中类命名OCRandSaveResults (IOcrEngine ocrEngine字符串文件)
并调用它Main ()
方法后IOcrEngine ocrEngine = InitOcrEngine ();
行代码。将下面的代码添加到OCRandSaveResults ()
OCR PDF文档的方法,识别结果导出到一个JSON文件。
静态无效OCRandSaveResults (IOcrEngine ocrEngine,字符串文件)
{
使用(var文档= DocumentFactory.LoadFromFile(文件,新LoadDocumentOptions {FirstPageNumber = 1, LastPageNumber = 1}))
{
document.Text。OcrEngine = OcrEngine;
列出< DocumentPageText > documentPageTexts =新列表< DocumentPageText > ();
foreach(var页面在document.Pages)
{
/ /解析文本和构建DocumentPageText对象
varpageText = page.GetText ();
pageText.BuildText ();
pageText.BuildWords ();
documentPageTexts.Add (pageText);
}
/ /序列化JSON字符串的识别字
varjson = JsonConvert。SerializeObject (documentPageTexts Formatting.Indented);
/ /保存的JSON文件
varjsonPath = Path.ChangeExtension(文件,. json”);
文件。WriteAllText (jsonPath、json);
}
}
处理文件使用MemoryStream
,修改OCRandSaveResults ()
方法变成如下:
静态无效OCRandSaveResults (IOcrEngine ocrEngine,字符串文件)
{
字节[]data = File.ReadAllBytes(文件);
使用(MemoryStream ms =新MemoryStream(数据)
使用(var文档= DocumentFactory.LoadFromStream(女士,新LoadDocumentOptions {FirstPageNumber = 1, LastPageNumber = 1}))
{
document.Text。OcrEngine = OcrEngine;
列出< DocumentPageText > documentPageTexts =新列表< DocumentPageText > ();
foreach(var页面在document.Pages)
{
/ /解析文本和构建DocumentPageText对象
varpageText = page.GetText ();
pageText.BuildText ();
pageText.BuildWords ();
documentPageTexts.Add (pageText);
}
/ /序列化JSON字符串的识别字
varjson = JsonConvert。SerializeObject (documentPageTexts Formatting.Indented);
/ /保存的JSON文件
字节[]jsonData = System.Text.Encoding.Default.GetBytes (json);
MemoryStream outputStream =新MemoryStream (jsonData);
}
}
按运行项目F5,或通过选择调试- >开始调试。
如果步骤正确之后,应用程序将OCR文档包含识别结果,并创建一个JSON。对于本教程中,我们使用了PDF文件位于:< INSTALL_DIR > \ LEADTOOLS22 \ \ \ leadtools.pdf图像资源
你可以下载生成的JSON在这里。
本教程展示了如何在一个文档上运行OCR和导出结果JSON。同时,它介绍了如何使用IOcrEngine
接口,以及LEADDocument
,DocumentPage
和DocumentPageText
类。