动态.NET TWAIN SDK:文档扫描与处理

Dynamic .NET TWAIN SDK 是一个功能强大的软件开发工具包,它能够处理各种类型的扫描仪、摄像头以及其他设备。该SDK帮助组织不同类型的文档,将它们转换为数字副本,并存储到目标位置。

Dynamic .NET TWAIN 支持32位和64位Windows操作系统,允许从兼容TWAIN、Windows Image Acquisition (WIA)和USB视频设备类(UVC)的任何设备获取图像。

该库针对C#和VB.NET进行了优化。在从设备或本地系统获取图像后,SDK允许编辑图像并将其上传到本地磁盘、FTP站点、Web服务器或数据库。

条码阅读器、OCR和注释插件

条码阅读器SDK能够检测和读取扫描文档上的1D和2D条码符号,例如Code 39、Code 93、Code 128、EAN-8、EAN-13、ITF、UPC-A、UPC-E、Codabar、RSS-14、Aztec、DataMatrix、PDF417和QR Code。

OCR插件能够精确执行光学字符识别(OCR),并将文档转换为可搜索的PDF/文本文件。该SDK支持识别超过40种语言,包括英语、西班牙语、阿拉伯语、中文等。如果想尝试,可以免费试用30天。

主要特点

与Windows操作系统兼容(32位和64位)

从兼容TWAIN、WIA或UVC的扫描仪、摄像头和其他设备捕获图像。

从网络摄像头捕获实时视频流。

从本地文件夹、Web服务器和/或数据库加载/下载图像。

支持自动文档进纸器(ADF)和批量扫描。

支持设置和读取设备功能,如亮度、分辨率、对比度、像素类型、双面打印等。

支持存储和恢复默认扫描设置。

编辑扫描图像,如旋转、镜像、翻转、裁剪、擦除等。

放大/缩小选定图像。

支持注释。向扫描文档添加文本、线条、椭圆或矩形。

将扫描图像转换为可搜索的PDF/文本文件。

检测和解码1D和2D条码符号。

将扫描文档上传到本地文件夹、Web服务器、FTP站点和/或数据库。

支持BMP、PNG、JPEG、TIFF和PDF。支持多页TIFF和PDF。

支持SSL以确保图像数据传输的安全。

示例代码

从设备捕获图像。提供了丰富的属性集,整个扫描过程都是可定制的,例如是否显示选定源的用户界面、双面扫描、分辨率等。

private void AcquireImage() { // select source dynamicDotNetTwain.SelectSourceByIndex(Convert.ToInt16(cmbSource.SelectedIndex)); dynamicDotNetTwain.OpenSource(); dynamicDotNetTwain.IfDisableSourceAfterAcquire = true; // set the resolution dynamicDotNetTwain.Resolution = 300; // set whether to show the user interface of the source dynamicDotNetTwain.IfShowUI = chkIfShowUI.Checked; dynamicDotNetTwain.IfFeederEnabled = chkIfUseADF.Checked; dynamicDotNetTwain.IfAutoFeed = chkIfUseADF.Checked; dynamicDotNetTwain.IfDuplexEnabled = chkDuplex.Checked; if ((dynamicDotNetTwain.Duplex == 0) && (chkDuplex.Checked == true)) { string errorstr = "Current source does not support duplex scan."; errorstr += "\r\n"; txtErrorString.Text = txtErrorString.Text + errorstr; chkDuplex.Checked = false; } dynamicDotNetTwain.AcquireImage(); // capture image(s) }

设置图像布局。

dynamicDotNetTwain.SelectSource(); // make dynamicDotNetTwain ready for capability negotiation dynamicDotNetTwain.OpenSource(); // set the image layout if (dynamicDotNetTwain.SetImageLayout(fFrameLeft, fFrameTop, fFrameRight, fFrameBottom) == false) MessageBox.Show(dynamicDotNetTwain.ErrorString, "Error"); dynamicDotNetTwain.IfShowUI = false; dynamicDotNetTwain.IfDisableSourceAfterAcquire = true; dynamicDotNetTwain.EnableSource();

设置视图模式。可以创建两个控件,一个用于缩略图,另一个用于查看/编辑。

dynamicDotNetTwainThum.MouseShape = true; // set the max number of images can be hold in the control dynamicDotNetTwainThum.MaxImagesInBuffer = 100; // set the view mode of the thumbnail. dynamicDotNetTwainThum.SetViewMode(1, 3); dynamicDotNetTwainView.MaxImagesInBuffer = 1; dynamicDotNetTwainView.SetViewMode(-1, -1); dynamicDotNetTwainView.IfFitWindow = true; dynamicDotNetTwainView.MouseShape = false;

将扫描图像保存到本地文件夹。除了PDF,其他格式如BMP、JPEG、PNG和TIFF也支持。还可以将图像上传到Web服务器和数据库。

private void TrySavingFile(string fileName) { if (AlreadyAddedFile(fileName)) { MessageBox.Show("Can't save over one of the source files."); } else { // save all scanned images as a multi-page PDF file this.dynamicDotNetTwain1.SaveAllAsPDF(fileName); } }

从扫描文档中读取条码信息。

this.textBox1.Text = ""; Result[] aryResult = this.dynamicDotNetTwain1.ReadBarcode(this.dynamicDotNetTwain1.CurrentImageIndexInBuffer, BarcodeFormat.All); StringBuilder strText = new StringBuilder(); strText.AppendFormat(aryResult.Length + " total barcode" + (aryResult.Length == 1 ? "" : "s") + " found.\r\n"); for (int i = 0; i < aryResult.Length; i++) { Result objResult = aryResult[i]; strText.AppendFormat("Result " + (i + 1) + "\r\n"); strText.AppendFormat("BarcodeFormat: " + objResult.BarcodeFormat.ToString() + "\r\n"); strText.AppendFormat("Text read: " + objResult.Text + "\r\n"); } this.textBox1.Text = strText.ToString();
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485