ImageGear .NET v24.12 - Updated
Scanner Selection
User Guide > How to Work with... > Common Operations > Scanning > Web-Based Scanning > Scanner Selection

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);
       }