VintaSoft Twain .NET SDK 14.1: Руководство для .NET разработчика
В этом разделе
    Менеджер SANE устройств
    В этом разделе
    SANE означает "Простой доступ к сканеру" ("Scanner Access Now Easy") и представляет собой интерфейс прикладного программирования (API), который обеспечивает стандартизированный доступ к любому оборудованию для сканерования растровых изображений.


    libsane - это библиотека, реализующая SANE API в Linux. В Debian/Ubuntu библиотека libsane находится по следующему пути "/usr/lib/x86_64-linux-gnu/libsane.so.1". В Fedora библиотека libsane находится по следующему пути "/usr/lib64/libsane.so.1".

    VintaSoft TWAIN .NET SDK предоставляет диспетчер SANE устройств, который обеспечивает доступ к SANE устройствам с использованием библиотеки libsane.


    Для работы с диспетчером SANE устройств необходимо создать экземпляр класса SaneLocalDeviceManager. Свойство SaneLocalDeviceManager.IsSaneAvailable позволяет проверить, доступен ли SANE (установлена ли библиотека libsane) в системе. Свойство SaneLocalDeviceManager.SaneLibPath позволяет задать пользовательский путь к библиотеке libsane.

    Вот C#/VB.NET код, который позволяет проверить установлен ли SANE в системе:
    /// <summary>
    /// Checks that SANE is available in the system.
    /// </summary>
    void CheckSane()
    {
        // create the SANE device manager
        using (Vintasoft.Sane.SaneLocalDeviceManager deviceManager = new Vintasoft.Sane.SaneLocalDeviceManager())
        {
            if (deviceManager.IsSaneAvailable)
                System.Console.WriteLine("SANE is available.");
            else
                System.Console.WriteLine("SANE is NOT available.");
        }
    }
    
    ''' <summary>
    ''' Checks that SANE is available in the system.
    ''' </summary>
    Private Sub CheckSane()
            ' create the SANE device manager
            Using deviceManager As New Vintasoft.Sane.SaneLocalDeviceManager()
                    If deviceManager.IsSaneAvailable Then
                            System.Console.WriteLine("SANE is available.")
                    Else
                            System.Console.WriteLine("SANE is NOT available.")
                    End If
            End Using
    End Sub
    


    Вот C#/VB.NET код, который демонстрирует как открыть менеджер SANE устройств и отобразить информацию о доступных SANE устройствах:
    /// <summary>
    /// Opens SANE device manager and displays information about available local SANE image scanners.
    /// </summary>
    void GetSaneDevicesInfo()
    {
        // create SANE device manager
        using (Vintasoft.Sane.SaneLocalDeviceManager deviceManager = new Vintasoft.Sane.SaneLocalDeviceManager())
        {
            // open device manager
            deviceManager.Open();
    
            Vintasoft.Sane.SaneLocalDeviceCollection devices = deviceManager.Devices;
            // for each SANE device
            for (int i = 0; i < devices.Count; i++)
            {
                // output the device name
                System.Console.WriteLine(string.Format("Device '{0}'", devices[i].Name));
            }
        }
    }
    
    ''' <summary>
    ''' Opens SANE device manager and displays information about available local SANE image scanners.
    ''' </summary>
    Private Sub GetSaneDevicesInfo()
            ' create SANE device manager
            Using deviceManager As New Vintasoft.Sane.SaneLocalDeviceManager()
                    ' open device manager
                    deviceManager.Open()
    
                    Dim devices As Vintasoft.Sane.SaneLocalDeviceCollection = deviceManager.Devices
                    ' for each SANE device
                    For i As Integer = 0 To devices.Count - 1
                            ' output the device name
                            System.Console.WriteLine(String.Format("Device '{0}'", devices(i).Name))
                    Next
            End Using
    End Sub