VintaSoft Twain .NET SDK 15.4: Руководство для .NET разработчика
Vintasoft.WpfTwain Namespace / TwainBarcodeRecognizer Class
Члены типа Объект Синтаксис Example Иерархия Требования Смотрите также
В этом разделе
Класс TwainBarcodeRecognizer
В этом разделе
Класс, который позволяет включить распознавание штрих-кодов в отсканированных изображениях и получить информацию о распознанных штрих-кодах.
Объектная модель
TwainBarcodeRecognizer
Синтаксис
'Declaration

Public Class TwainBarcodeRecognizer

public 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.WpfTwain.TwainBarcodeRecognizer

Требования

Целевые платформы: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также