Dynamic .NET TWAIN SDK 是一个功能强大的软件开发工具包,它能够处理各种类型的扫描仪、摄像头以及其他设备。该SDK帮助组织不同类型的文档,将它们转换为数字副本,并存储到目标位置。
Dynamic .NET TWAIN 支持32位和64位Windows操作系统,允许从兼容TWAIN、Windows Image Acquisition (WIA)和USB视频设备类(UVC)的任何设备获取图像。
该库针对C#和VB.NET进行了优化。在从设备或本地系统获取图像后,SDK允许编辑图像并将其上传到本地磁盘、FTP站点、Web服务器或数据库。
条码阅读器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();