public async Task ScanMultiple(string deviceId, ScanSetting settings) { using (DeviceClient client = new DeviceClient(_logger)) { RegisterImageScannedEvents(client); await TryInvoke(() => client.Scan(deviceId, settings, true)); await Clients.Caller.SendAsync(ClientMethod.ON_SCAN_FINISHED); } }
private void cbxScannerSettings_SelectedIndexChanged(object sender, EventArgs e) { if (cbxScannerSettings.SelectedItem == null) { return; } _scanSetting = _settingsManager.GetSettingByName(cbxScannerSettings.SelectedItem.ToString()); lbHomologation.Visible = _scanSetting.Routing.Homologation == 1; cbxScanner.SelectedItem = _scanSetting.Scanner; cbxResolution.SelectedItem = _scanSetting.Resolution.ToString(); switch (_scanSetting.ColorFormat) { case "Color": rbtnRGB.Checked = true; break; case "Escala de grises": rbtnGray.Checked = true; break; case "Blanco y negro": rbtnBW.Checked = true; break; default: break; } switch (_scanSetting.FileType) { case ".tiff": rbtnTIFF.Checked = true; break; case ".jpeg": rbtnJPG.Checked = true; break; case ".bmp": rbtnBMP.Checked = true; break; case ".png": rbtnPNG.Checked = true; break; default: break; } }
public void BindToControls(ScanSetting scanSetting) { bindingSource.DataSource = scanSetting; bindingSRouting.DataSource = scanSetting.Routing; _folder = new FileFolder() { id = scanSetting.Routing.Folder }; _community = new UserGroup() { id = scanSetting.Routing.Community, name = scanSetting.Routing.CommunityName }; }
private void btnAdd_Click(object sender, EventArgs e) { var scanSetting = new ScanSetting(); using (var form = new ScanSettingForm()) { form.BindToControls(scanSetting); if (form.ShowDialog() == DialogResult.OK) { _settingsManager.Add(scanSetting); RefreshListView(); } } }
private async Task ScanMultiple() { if (SelectedDevice == null) { MessageBox.Show("Please select a scannr from scanner list", "Select scanner", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK); return; } ScanSetting setting = new ScanSetting() { Color = SelectedColorMode, Dpi = SelectedDpi }; await Task.Run(() => { Service.Scan(SelectedDevice.DeviceId, setting, true); }); await Task.CompletedTask; }
public void Scan(string deviceID, ScanSetting setting = null, bool scanAllPages = false) { if (setting == null) { setting = new ScanSetting(); } int page = 1; IDeviceInfo device = GetDeviceById(deviceID); Device connectedDevice = null; try { connectedDevice = device.Connect(); SetDeviceSettings(connectedDevice, setting); do { page = ScanImage(connectedDevice, page, setting); }while (scanAllPages); } catch (COMException ex) { var excpetion = GetException(ex); _logger?.LogError(ex.ToString()); if (page != 1 && excpetion.Code != ScanXExceptionCodes.NoPaper) { throw excpetion; } } catch (Exception ex) { _logger?.LogError(ex.ToString()); throw new ScanXException($"Error: {ex.ToString()}", ex, ScanXExceptionCodes.UnkownError); } }
private void SetDeviceSettings(Device connectedDevice, ScanSetting setting) { var(width, height) = ScanSetting.GetA4SizeByDpi((int)setting.Dpi); var resoultions = ScanSetting.GetResolution(setting.Dpi); var properties = connectedDevice.Items[1].Properties; SetWIAProperty(properties, ScanSetting.WIA_ITEM_SIZE, 0); SetWIAProperty(properties, ScanSetting.WIA_PAGE_SIZE, 3); SetWIAProperty(properties, ScanSetting.WIA_HORIZONTAL_RESOLUTION, resoultions); SetWIAProperty(properties, ScanSetting.WIA_VERTICAL_RESOLUTION, resoultions); SetWIAProperty(properties, ScanSetting.WIA_VERTICAL_EXTENT, height); SetWIAProperty(properties, ScanSetting.WIA_HORIZONTAL_EXTENT, width); SetWIAProperty(properties, ScanSetting.WIA_COLOR_MODE, (int)setting.Color); }
private int ScanImage(Device connectedDevice, int page, ScanSetting setting) { var img = (ImageFile)connectedDevice.Items[1].Transfer(FormatID.wiaFormatJPEG); byte[] data = (byte[])img.FileData.get_BinaryData(); byte[] dataConverted = null; dataConverted = CompressImageBytes(data); var args = new DeviceImageScannedEventArgs(dataConverted, img.FileExtension, page) { Height = img.Height, Width = img.Width, Settings = setting }; OnImageScanned?.Invoke(this, args); page++; return(page); }