彩票走势图

医疗影像工具LEADTOOLS 入门教程: 将 OCR 结果导出到 JSON - C# .NET 6

翻译|使用教程|编辑:胡涛|2023-02-09 10:39:06.677|阅读 47 次

概述:本教程介绍如何使用 LEADTOOLS SDK 在 C# Windows 控制台应用程序中提取包含在 PDF 文件中的附件。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理,PDF,打印捕获,归档,注释和显示功能。利用业界领先的图像处理技术,能够智能识别文件,可以用来识别任何类型的扫描或传真形式的图像。

LEADTOOLS 最新下载

本教程介绍如何使用 LEADTOOLS SDK 在 C# Windows 控制台应用程序中提取包含在 PDF 文件中的附件。

概括 本教程介绍如何在 C# Windows 控制台应用程序中提取 PDF 附件并将它们转换为 PNG 文件。
完成时间 30分钟
视觉工作室项目
平台 C# Windows 控制台应用程序
集成开发环境 视觉工作室 2017、2019
开发许可 LEADTOOLS
用另一种语言试试
  • C# :.NET Framework(控制台)、. NET 6+(控制台)
  • Java

所需知识

在学习从 PDF 中提取附件 - 控制台 C#教程之前,通过查看添加引用和设置许可证教程熟悉创建项目的基本步骤。

创建项目并添加 LEADTOOLS 引用

从添加引用和设置许可证教程中创建的项目副本开始。如果您没有该项目,请按照该教程中的步骤创建它。

所需的参考取决于项目的目的。可以通过以下两种方法之一(但不能同时使用)添加引用。

如果使用 NuGet 引用,本教程需要以下 NuGet 包:

  • Leadtools.Document.Sdk

如果使用本地 DLL 引用,则需要以下 DLL。

DLL 位于<INSTALL_DIR>\LEADTOOLS22\Bin\Dotnet4\x64:

  • Leadtools.dll
  • Leadtools.Caching.dll
  • Leadtools.Codecs.dll
  • Leadtools.Codecs.Cmp.dll
  • Leadtools.Codecs.Png.dll
  • Leadtools.Document.dll
  • Leadtools.Document.Converter.dll
  • Leadtools.Document.Pdf.dll
  • Leadtools.Document.Raster.dll
  • Leadtools.Document.Writer.dll
  • Leadtools.Pdf.dll

有关您的应用程序需要哪些 DLL 文件的完整列表,请参阅要包含在您的应用程序中的文件。

设置许可证文件

许可证解锁项目所需的功能。它必须在调用任何工具包函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时许可证。

有两种类型的运行时许可证:

  • 评估许可证,在下载评估工具包时获得。它允许评估工具包。
  • 部署许可证。如果需要部署许可证文件和开发人员密钥,请参阅获取许可证。

笔记

添加 LEADTOOLS NuGet 和本地引用以及设置许可证在添加引用和设置许可证教程 中有更详细的介绍。

添加PDF附件提取和转换代码

创建项目、添加参考和设置许可证后,就可以开始编码了。

在解决方案资源管理器中,打开Program.cs。将以下语句添加到顶部的 using 块中Program.cs:

[C#]

using System;
using System.Collections.Generic;
using System.IO;
using Leadtools;
using Leadtools.Caching;
using Leadtools.Codecs;
using Leadtools.Document;
using Leadtools.Document.Converter;
using Leadtools.Document.Writer;

将以下全局变量添加到Program类中。

[C#]

static FileCache cache;
static string OutputDir = "Output";

将以下代码添加InitOcrEngine()到初始化IOcrEngine.

Program.cs在named中创建一个新方法ExtractPDFAttachments()。在set license调用下调用方法中的Main()方法,如下图。

[C#]

static void Main(string[] args)
{
try
{
SetLicense();
ExtractPDFAttachments();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}

将下面的代码添加到ExtractPDFAttachments()方法中以从给定的 PDF 中提取附件。

static void ExtractPDFAttachments()
{
cache = new FileCache { CacheDirectory = "\\cache" };

List<LEADDocument> documents = new List<LEADDocument>();

if (!Directory.Exists(OutputDir))
Directory.CreateDirectory(OutputDir);

LoadDocumentOptions options = new LoadDocumentOptions
{
Cache = cache,
LoadAttachmentsMode = DocumentLoadAttachmentsMode.AsAttachments
};

LEADDocument document = DocumentFactory.LoadFromFile(@"FILE PATH TO PDF WITH ATTACHMENTS", options);

if (document.Pages.Count > 0)
documents.Add(document);

foreach (DocumentAttachment attachment in document.Attachments)
{
LoadAttachmentOptions attachmentOptions = new LoadAttachmentOptions { AttachmentNumber = attachment.AttachmentNumber, };
LEADDocument loadDocument = document.LoadDocumentAttachment(attachmentOptions);
documents.Add(loadDocument);
}

ConvertDocuments(documents, RasterImageFormat.Png);
}

在Program类中,添加一个名为 的新方法ConvertDocuments(IEnumerable<LEADDocument> documents, RasterImageFormat imageFormat)。该方法将在方法内部调用ExtractPDFAttachments(),如上所示。将下面的代码添加ConvertDocuments()到将 PDF 附件转换为 PNG 文件的方法中。

static void ConvertDocuments(IEnumerable<LEADDocument> documents, RasterImageFormat imageFormat)
{
DocumentConverter converter = new DocumentConverter();

foreach (LEADDocument document in documents)
{
string name = string.IsNullOrEmpty(document.Name) ? "DocumentAttachment" : document.Name;
string outputFile = Path.Combine(OutputDir, $"{name}.{RasterCodecs.GetExtension(imageFormat)}");
int count = 1;
while (File.Exists(outputFile))
outputFile = Path.Combine(OutputDir, $"{name}({count++}).{RasterCodecs.GetExtension(imageFormat)}");

DocumentConverterJobData jobData = new DocumentConverterJobData
{
Document = document,
Cache = cache,
DocumentFormat = DocumentFormat.User,
RasterImageFormat = imageFormat,
RasterImageBitsPerPixel = 0,
OutputDocumentFileName = outputFile,
};
DocumentConverterJob job = converter.Jobs.CreateJob(jobData);
converter.Jobs.RunJob(job);

if (job.Errors.Count > 0)
foreach (var error in job.Errors)
Console.WriteLine($"Error during conversion: {error.Error.Message}\n");
else
Console.WriteLine($"Successfully Converted to {outputFile}...\n");
}
}

运行项目

按F5或选择Debug -> Start Debugging运行项目。

如果正确执行了这些步骤,应用程序将运行并将给定 PDF 文件中的所有附件转换为单独的 PNG 文件。

以上便是将 OCR 结果导出到 JSON - C# .NET 6,如果您还有其他疑问,欢迎咨询我们或者加入我们官方技术交流群。


欢迎下载|体验更多LEADTOOL产品

您还可以加入产品技术交流Q群:731259648


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP