本教程展示了如何在使用LEADTOOLS SDK的c# . net 6应用程序中对图像进行OCR,并将OCR结果导出为JSON文件。
概述 | |
---|---|
总结 | 本教程介绍如何在c# . net 6控制台应用程序中将OCR结果保存为JSON文件。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(1kb) |
平台 | c# .NET 6控制台应用程序 |
IDE | Visual Studio 2022 |
运行时目标 | .NET 6或更高版本 |
开发许可 | 下载LEADTOOLS |
用另一种语言试试 |
|
步骤熟悉创建项目的基本步骤添加引用和设置License教程,在工作之前导出OCR结果到JSON - c# .NET 6教程。
从以下两个主题之一创建的项目副本开始,具体取决于平台:
如果您没有该项目,请按照相关教程中的步骤创建它。
所需要的参考资料取决于项目的目的。引用可以通过NuGet包添加。
本教程需要以下NuGet包:
Leadtools.Document.Sdk
Newtonsoft。Json
有关应用程序需要哪些DLL文件的完整列表,请参阅你的申请中包含的文件.
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中详细介绍了添加LEADTOOLS NuGet引用和设置许可添加引用和设置License教程。
随着项目的创建、引用的添加和许可的设置,编码就可以开始了。
在解决方案资源管理器,打开Program.cs
.将下列语句添加到使用
块的顶部Program.cs
.
使用系统;
使用先;
使用System.Collections.Generic;
使用Newtonsoft.Json;
使用Leadtools;
使用Leadtools.Ocr;
使用Leadtools.Document;
添加一个名为InitOcrEngine ()
返回IOcrEngine
并在Main ()
方法。SetLicense ()
方法调用,如下所示。
字符串文件=@“C: \ LEADTOOLS22 \资源\ \ leadtools.pdf图像”;
IOcrEngine ocrEngine = InitOcrEngine();
OCRandSaveResults (ocrEngine、文件);
将下面的代码添加到InitOcrEngine ()
方法初始化IOcrEngine
.
静态IOcrEngine InitOcrEngine ()
{
//初始化OCR引擎
IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(ocrengintype . lead);
ocrEngine。启动(零,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);
返回ocrEngine;
}
在Program类中创建一个名为OCRandSaveResults(IOcrEngine ocrEngine,字符串文件)
把它叫做Main ()
方法。IOcrEngine ocrEngine = InitOcrEngine();
代码行。将下面的代码添加到OCRandSaveResults ()
方法对PDF文档进行OCR,并将识别结果导出为JSON文件。
静态无效OCRandSaveResults (IOcrEngine ocrEngine,字符串文件)
{
使用(vardocument = DocumentFactory。LoadFromFile(文件,新LoadDocumentOptions {FirstPageNumber = 1, LastPageNumber = -1}))
{
document.Text.OcrEngine = ocrEngine;
List
DocumentPageText =新列表< DocumentPageText > (); foreach(var页面在document.Pages)
{
//解析文本并构建DocumentPageText对象
varpageText = page.GetText();
pageText.BuildText ();
pageText.BuildWords ();
documentPageTexts.Add (pageText);
}
//将识别的单词保存为JSON
varjson = JsonConvert。SerializeObject (documentPageTexts Formatting.Indented);
varjsonPath =路径。ChangeExtension(文件,. json”);
文件。WriteAllText (jsonPath、json);
}
}
或者,您可以使用内存流来处理文档。方法中调用此方法,将以下代码添加到程序中Main (string [] args)
方法:
静态无效OCRStreamandSaveResults (IOcrEngine ocrEngine)
{//加载指定的文档
var文件名= Path.Combine(LEAD_VARS.ImagesDir,“Leadtools.pdf”);
使用(varstream = File.OpenRead(文件名)
{
var选择=新LoadDocumentOptions ();
使用(vardocument = DocumentFactory。LoadFromStream(流、期权))
{
document.Text.OcrEngine = ocrEngine;
控制台。WriteLine (“医生”加载);
List
DocumentPageText =新列表< DocumentPageText > (); foreach(var页面在document.Pages)
{
//解析文本并构建DocumentPageText对象
varpageText = page.GetText();
pageText.BuildText ();
pageText.BuildWords ();
documentPageTexts.Add (pageText);
}
//将识别的单词保存为JSON
varjson = JsonConvert。SerializeObject (documentPageTexts Formatting.Indented);
varjsonPath =路径。ChangeExtension(文件名,. json”);
文件。WriteAllText (jsonPath、json);
}
}
}
LEAD_VARS
类,以便ImagesDir
可以访问。
静态类LEAD_VARS
{
公共常量字符串ImagesDir =@“C: \ LEADTOOLS22 \ Resources \图片”;
}
按下运行项目F5,或选择Debug ->开始调试.
如果正确地执行了这些步骤,应用程序将对文档进行OCR,并创建包含识别结果的JSON。为了本教程的目的,我们使用了位于这里的PDF文件:< INSTALL_DIR > \ LEADTOOLS22 \ \ \ leadtools.pdf图像资源
下载生成的JSON在这里.
本教程展示了如何在文档上运行OCR并将结果导出为JSON。此外,它还介绍了如何使用IOcrEngine
接口,连同LEADDocument
,DocumentPage
而且DocumentPageText
类。