Класс TwainBarcodeRecognizer
В этом разделе
Класс, который позволяет включить распознавание штрих-кодов в отсканированных изображениях и получить информацию о распознанных штрих-кодах.
Объектная модель
Синтаксис
'Declaration
Public Class TwainBarcodeRecognizer
public class TwainBarcodeRecognizer
public __gc class TwainBarcodeRecognizer
public ref class TwainBarcodeRecognizer
Пример
Вот C#/VB.NET код, который демонстрирует, как получить информацию о штрих-кодах, распознанных на полученном изображении.
''' <summary>
''' Synchronously acquires images from TWAIN device and retrieves from TWAIN device information about barcodes recognized on acquired images.
''' </summary>
Public Sub SynchronouslyAcquireImageFromTwainDeviceAndRecognizeBarcodeInAcquiredImages()
Using deviceManager As New Vintasoft.Twain.DeviceManager()
Try
' open the device manager
deviceManager.Open()
deviceManager.ShowDefaultDeviceSelectionDialog()
' get reference to the default device
Dim device As Vintasoft.Twain.Device = deviceManager.DefaultDevice
' specify that device UI must not be used
device.ShowUI = False
' specify that device must be closed after scan
device.DisableAfterAcquire = True
' open the device
device.Open()
' specify that device should recognize barcodes in acquired images
device.BarcodeRecognizer.IsEnabled = True
' acquire images from device
Dim acquireModalState As Vintasoft.Twain.AcquireModalState = Vintasoft.Twain.AcquireModalState.None
Do
acquireModalState = device.AcquireModal()
Select Case acquireModalState
Case Vintasoft.Twain.AcquireModalState.ImageAcquired
' get information about recognized barcodes
Dim recognizedBarcodes As Vintasoft.Twain.TwainBarcodeInfo() = device.BarcodeRecognizer.GetRecognitionResult()
' if barcodes are NOT found
If recognizedBarcodes.Length = 0 Then
System.Console.WriteLine("Barcodes are NOT found.")
Else
' if barcodes are found
System.Console.WriteLine(String.Format("{0} barcodes are found.", recognizedBarcodes.Length))
' for each recognized barcode
For i As Integer = 0 To recognizedBarcodes.Length - 1
' output barcode type
System.Console.Write(String.Format("BarcodeType={0} ", recognizedBarcodes(i).Type))
' output barcode text
System.Console.WriteLine(String.Format("BarcodeText='{0}'", recognizedBarcodes(i).Value))
Next
End If
' if acquired image is present (Native or Memory transfer mode is used)
If device.AcquiredImage IsNot Nothing Then
' dispose the acquired image
device.AcquiredImage.Dispose()
End If
Exit Select
End Select
Loop While acquireModalState <> Vintasoft.Twain.AcquireModalState.None
' close the device
device.Close()
' close the device manager
deviceManager.Close()
Catch ex As Vintasoft.Twain.TwainException
System.Console.WriteLine("Error: " + ex.Message)
System.Console.ReadLine()
End Try
End Using
End Sub
/// <summary>
/// Synchronously acquires images from TWAIN device and retrieves from TWAIN device information about barcodes recognized on acquired images.
/// </summary>
public void SynchronouslyAcquireImageFromTwainDeviceAndRecognizeBarcodeInAcquiredImages()
{
using (Vintasoft.Twain.DeviceManager deviceManager = new Vintasoft.Twain.DeviceManager())
{
try
{
// open the device manager
deviceManager.Open();
deviceManager.ShowDefaultDeviceSelectionDialog();
// get reference to the default device
Vintasoft.Twain.Device device = deviceManager.DefaultDevice;
// specify that device UI must not be used
device.ShowUI = false;
// specify that device must be closed after scan
device.DisableAfterAcquire = true;
// open the device
device.Open();
// specify that device should recognize barcodes in acquired images
device.BarcodeRecognizer.IsEnabled = true;
// acquire images from device
Vintasoft.Twain.AcquireModalState acquireModalState = Vintasoft.Twain.AcquireModalState.None;
do
{
acquireModalState = device.AcquireModal();
switch (acquireModalState)
{
case Vintasoft.Twain.AcquireModalState.ImageAcquired:
// get information about recognized barcodes
Vintasoft.Twain.TwainBarcodeInfo[] recognizedBarcodes = device.BarcodeRecognizer.GetRecognitionResult();
// if barcodes are NOT found
if (recognizedBarcodes.Length == 0)
{
System.Console.WriteLine("Barcodes are NOT found.");
}
// if barcodes are found
else
{
System.Console.WriteLine(string.Format("{0} barcodes are found.", recognizedBarcodes.Length));
// for each recognized barcode
for (int i = 0; i < recognizedBarcodes.Length; i++)
{
// output barcode type
System.Console.Write(string.Format("BarcodeType={0} ", recognizedBarcodes[i].Type));
// output barcode text
System.Console.WriteLine(string.Format("BarcodeText='{0}'", recognizedBarcodes[i].Value));
}
}
// if acquired image is present (Native or Memory transfer mode is used)
if (device.AcquiredImage != null)
// dispose the acquired image
device.AcquiredImage.Dispose();
break;
}
}
while (acquireModalState != Vintasoft.Twain.AcquireModalState.None);
// close the device
device.Close();
// close the device manager
deviceManager.Close();
}
catch (Vintasoft.Twain.TwainException ex)
{
System.Console.WriteLine("Error: " + ex.Message);
System.Console.ReadLine();
}
}
}
Иерархия наследования
System.Object
 Vintasoft.WinTwain.TwainBarcodeRecognizer
Требования
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
Смотрите также