.NET图像采集与OCR转换指南

在现代软件开发中,图像采集和文档转换是常见的需求。Dynamic.NETTWAIN和OCR SDK是两个强大的工具,它们可以帮助开发者实现这些功能。本文将介绍如何将这些工具集成到WinForm应用程序中,以实现图像的采集和转换为可搜索的PDF或文本文件

Dynamic .NET TWAIN与OCRSDK简介

Dynamic .NET TWAIN是一个图像采集SDK,专为.NET应用程序优化。它支持从扫描仪、摄像头或本地文件夹获取图像。而OCR SDK则允许将扫描的图像转换为可搜索的PDF或文本文件。虽然这是一个有用的特性,但实现起来并不简单,涉及到准确性、图像格式等多个复杂因素。OCR性能是影响整个过程效率的另一个重要因素。

Dynamsoft的OCR SDK基于高度发达的开源引擎(Tesseract OCR引擎)进行了优化,可以帮助减轻这些负担。通过与Dynamic .NET TWAIN集成,可以用几行源代码创建一个强大的图像采集和处理解决方案。

主要特点

OCRSDK支持超过40种语言,包括阿拉伯语和各种亚洲语言。通过支持多线程处理,提供高性能的OCR。准确的识别与字体识别相结合,易于与图像采集SDK——Dynamic.NETTWAIN集成。

集成步骤

以下是将OCR插件集成到WinForm应用程序并转换扫描图像为可搜索PDF/文本文件的步骤。

将以WinForm为例。假设已经在开发机器上下载并安装了.NET组件(如果没有,请从Dynamsoft网站下载30天免费试用)。在Visual Studio中打开WinForm应用程序或创建一个新的。从工具菜单中选择“选择工具箱项”。在弹出的对话框中,点击“浏览”并选择Dynamic .NET TWAIN安装文件夹中的DynamicDotNetTWAIN.dll。点击“确定”关闭对话框。将组件拖放到表单上。

Dynamic .NET TWAIN支持从各种来源获取图像,包括扫描仪、摄像头和其他TWAIN/WIA/UVC兼容设备。本文将展示如何从本地磁盘加载现有图像。

this.dynamicDotNetTwain1.SetViewMode(1, 1); OpenFileDialog filedlg = new OpenFileDialog(); if (filedlg.ShowDialog() == DialogResult.OK) { foreach (string strfilename in filedlg.FileNames) { this.dynamicDotNetTwain1.LoadImage(strfilename); } }

1) 选择语言包并使用OCRTessDataPath属性定义包的路径。Dynamsoft的OCR SDK支持超过40种语言,包括英语、西班牙语、阿拉伯语等。以下示例代码选择英语作为默认语言。其他语言包可以从Dynamsoft网站下载:

string languageFolder = Application.StartupPath; this.dynamicDotNetTwain1.OCRTessDataPath = languageFolder; this.dynamicDotNetTwain1.OCRLanguage = "eng";

2) 设置DynamicOCR.dll或DynamicOCRx64.dll的路径以初始化OCR插件。

this.dynamicDotNetTwain1.OCRDllPath = "";

3) 选择OCR结果文件格式并保存。支持的文件格式包括文本、PDF纯文本和PDF图像覆盖文本。通过将格式设置为PDF图像覆盖文本,原始的详细图像/文本位置和格式(如字体名称、字体大小、行宽等)将保持不变。

this.dynamicDotNetTwain1.OCRResultFormat = (Dynamsoft.DotNet.TWAIN.OCR.ResultFormat)this.ddlResultFormat.SelectedIndex;

执行OCR操作并保存结果:

byte[] sbytes = this.dynamicDotNetTwain1.OCR(this.dynamicDotNetTwain1.CurrentSelectedImageIndicesInBuffer); if (sbytes != null) { SaveFileDialog filedlg = new SaveFileDialog(); if (this.ddlResultFormat.SelectedIndex != 0) { filedlg.Filter = "PDF File(*.pdf)|*.pdf"; } else { filedlg.Filter = "Text File(*.txt)|*.txt"; } if (filedlg.ShowDialog() == DialogResult.OK) { FileStream fs = File.OpenWrite(filedlg.FileName); fs.Write(sbytes, 0, sbytes.Length); fs.Close(); } } else { MessageBox.Show(this.dynamicDotNetTwain1.ErrorString); }

分发

要将应用程序分发给最终用户,请将以下文件复制到客户端机器上,与EXE文件一起。

  • 语言包
  • DynamicOCR.dll(适用于32位Windows操作系统)和/或DynamicOCRx64.dll(适用于64位Windows操作系统)
  • DynamicDotNetTwain.dll
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485