ImageGear .NET v25.2 - Updated
Developer Guide / How to Work with... / Common Operations / Scanning / Web-Based Scanning / Scanner Selection
In This Topic
    Scanner Selection
    In This Topic

    A scanner must first be selected by calling the ImGearIsisScannerSession setScanner method in order for the ImGearIsisScannerSession scan method to work or any of the ImGearIsisScanner methods to work. When a scanner is selected, the ImGearIsisScanner selected property returns true. A scanner can be unloaded by calling the unload method.

    The setScanner method has two overloads. You can specify a load option for a scanner selection dialog or to specify that the currently selected scanner should be used. This is demonstrated below:

    JavaScript Example
    Copy Code
                function onScannerLoaded(status) {
                    if (status.get_status() !== ImageGear.Web.Isis.ImGearIsisStatus.Completed) {
                        alert(status.get_statusMessage());
                    }
                    // The scanner can now be accessed through the ImGearIsisScannerSession scanner property.
                    var scanner = scannerSession.get_scanner();
                    // You could use the getTag method or getAllTags method here
                    // to get the current scanner settings.
                }
                // Show the scanner selection dialog with a list of connected drivers.
                scannerSession.setScannerWithDialog(
                    ImageGear.Web.Isis.ImGearIsisLoadScannerOption.ShowConnectedDriverList, onScannerLoaded);
    

    Another option is to pass an ImGearIsisScanner object to change to the specified scanner without showing a dialog. You can get a collection of connected scanners and a collection of undetected scanners by calling the ImGearIsisScannerSession getScanners method. This is demonstrated below, where “scannerSelect” is an HTML DOM <select> object:

    JavaScript Example
    Copy Code
           var scanners;
    ...
           function ButtonGetScanners_onclick() {
               function getScannersCallback(connectedDevices, undetectedDevices, status) {
                   if (status.get_status() !== ImageGear.Web.Isis.ImGearIsisStatus.Completed) {
                       alert(status.get_statusMessage());
                   }
                   var select = document.getElementById('scannerSelect');              
                   // Store the scanners so one of them can be set later.
                   scanners = connectedDevices;
    
                   for (var i = 0; i < connectedDevices.get_length(); i++) {
                       var scanner = connectedDevices.getScanner(i);
                      
                       var option = document.createElement(‘option’);
                       var scannerName = scanner.get_name();
                       option.text = scannerName;
                       select.add(option, null);
                   }
                }
                // Get a list of connected scanners and add each to a list box.
                var operationStatus = scannerSession.getScanners(getScannersCallback);
           }
           function ButtonSetConnectedScanner_onclick() {
               function onScannerLoaded(status) {
                   if (status.get_status() !== ImageGear.Web.Isis.ImGearIsisStatus.Completed) {
                       alert(status.get_statusMessage());
                   }
                    // The scanner can now be accessed through the ImGearIsisScannerSession scanner property.
                    var scanner = scannerSession.get_scanner();
                    // You could use the getTag method or getAllTags method here
                    // to get the current scanner settings.
               }
               var select = document.getElementById('scannerSelect');
               var selectedScanner = scanners.getScanner(select.selectedIndex);
               // Set the scanner that is selected in the connected list.
               scannerSession.setScanner(selectedScanner, onScannerLoaded);
           }