VintaSoft Twain ActiveX v6.0
In This Topic
    How to scan pages from the automatic document feeder (ADF) of scanner
    In This Topic
    Example: Here is an example that shows how to use document feeder of the device.
    Private VSTwain1 As New VintaSoftTwain()
    
    
    ''' <summary>
    ''' Scans images asynchronously.
    ''' </summary>
    Private Sub StartScan()
        ' open the device manager
        If Not VSTwain1.DeviceManager_Open() Then
            Console.WriteLine(VSTwain1.errorString)
            Exit Sub
        End If
    
        ' select device using standard device selection dialog
        VSTwain1.DeviceManager_ShowDefaultDeviceSelectionDialog()
    
        ' open the device
        If Not VSTwain1.Device_Open() Then
            Console.WriteLine(VSTwain1.errorString)
            Exit Sub
        End If
    
        ' specify that device UI must be shown
        VSTwain1.Device_ShowUI = True
    
        ' set settings of TIFF encoder
        VSTwain1.TiffEncoder_MultiPage = True
    
        ' subscribe to the device events
        AddHandler VSTwain1.DeviceImageAcquired, AddressOf VSTwain1_ImageAcquired
        AddHandler VSTwain1.DeviceScanCompleted, AddressOf VSTwain1_ScanCompleted
        AddHandler VSTwain1.DeviceScanFailed, AddressOf VSTwain1_ScanFailed
        AddHandler VSTwain1.DeviceScanCanceled, AddressOf VSTwain1_ScanCanceled
    
        ' if device has feeder
        If VSTwain1.Device_Feeder_Present Then
            ' enable feeder
            VSTwain1.Device_Feeder_Enabled = True
            ' specify that application want to acquire all pages from the feeder
            VSTwain1.Device_XferCount = -1
    
            ' if pages can be scanned in duplex mode
            If VSTwain1.Device_Feeder_DuplexMode <> DUPLEXMODE.DUPLEXMODE_NoDuplex Then
                ' enable duplex scanning
                VSTwain1.Device_Feeder_DuplexEnabled = True
            End If
    
            ' if feeder can detect paper
            If VSTwain1.Device_Feeder_PaperDetectable Then
                ' if feeder is loaded
                If VSTwain1.Device_Feeder_Loaded Then
                    ' acquire images asynchronously
                    VSTwain1.Device_AcquireImage()
                End If
            Else
                ' acquire images asynchronously
                VSTwain1.Device_AcquireImage()
            End If
        End If
    End Sub
    
    Private Sub VSTwain1_ImageAcquired()
        ' get index of acquired image
        Dim imageIndex As Integer = VSTwain1.AcquiredImages_Count - 1
    
        ' save acquired image to TIFF file
        If Not VSTwain1.AcquiredImages_Save(imageIndex, "test.tif") Then
            Console.WriteLine(VSTwain1.errorString)
        End If
    End Sub
    
    Private Sub VSTwain1_ScanCompleted()
        Console.WriteLine("Scan is completed.")
    End Sub
    
    Private Sub VSTwain1_ScanFailed(errorString As String)
        Console.WriteLine(String.Format("Scan is failed: {0}.", errorString))
    End Sub
    
    Private Sub VSTwain1_ScanCanceled()
        Console.WriteLine("Scan is canceled.")
    End Sub