コード例 #1
0
ファイル: MainForm.cs プロジェクト: martindobias/ScanIt
        private static ScanSettings CreateDefaultSettings(int dpi, ColourSetting colour, bool adf)
        {
            ScanSettings scanSettings = new ScanSettings
            {
                ShowTwainUI = false,
                Resolution = new ResolutionSettings(),
                AbortWhenNoPaperDetectable = adf,
                ShouldTransferAllPages = adf,
                UseAutoFeeder = adf,
                UseDocumentFeeder = adf
            };
            scanSettings.Resolution.ColourSetting = colour;
            scanSettings.Resolution.Dpi = dpi;

            return scanSettings;
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: shahareldad/EcoScan
        public MainForm(ConfigurationModel model, StandardKernel kernel)
        {
            InitializeComponent();

            _kernel = kernel;
            _logger.Debug("MainForm started.");

            _model = model;

            _twain = new Twain(new WinFormsWindowMessageHook(this));
            if (model.GetDevices)
            {
                Console.WriteLine(string.Join(Environment.NewLine, _twain.SourceNames));
                Application.Exit();
            }
            if (!string.IsNullOrWhiteSpace(model.SetDevice))
            {
                _twain.SelectSource(model.SetDevice);
            }

            _filename = _model.FileName;
            ValidateFilename();

            _twain.TransferImages += TransferImagesCallback;

            _colourSettings = _model.ScanColor ? ColourSetting.Colour : ColourSetting.BlackAndWhite;

            _settings = new ScanSettings
            {
                AbortWhenNoPaperDetectable = _model.AbortWhenNoPaperDetectable,
                UseDocumentFeeder          = _model.UseDocumentFeeder,
                ShowTwainUI             = _model.ShowScannerUI,
                ShowProgressIndicatorUI = _model.ShowProgressIndicatorUI,
                UseDuplex  = _model.UseDuplex,
                Resolution = new ResolutionSettings
                {
                    ColourSetting = _colourSettings,
                    Dpi           = _model.ScanResolution
                },
                ShouldTransferAllPages = _model.ShouldTransferAllPages,
                Rotation = new RotationSettings
                {
                    AutomaticDeskew          = _model.AutomaticDeskew,
                    AutomaticBorderDetection = _model.AutomaticBorderDetection,
                    FlipSideRotation         = _model.FlipSideRotation,
                    AutomaticRotate          = _model.AutomaticRotate
                },
                TransferCount    = _model.TransferCount,
                UseAutoFeeder    = _model.UseAutoFeeder,
                UseAutoScanCache = _model.UseAutoScanCache
            };
            if (model.SetArea)
            {
                _settings.Area = new AreaSettings(_model.Units, _model.Top, _model.Left, _model.Bottom, _model.Right);
            }
            if (model.SetPageSettings)
            {
                _settings.Page = new PageSettings
                {
                    Orientation = _model.Orientation,
                    Size        = _model.PageTypeSize
                };
            }
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: martindobias/ScanIt
 void Scan(string twain_source, int dpi, ColourSetting colour, bool adf)
 {
     this.mainForm.twain.SelectSource(twain_source == null ? Properties.Settings.Default.twain_source : twain_source);
     ScanSettings settings = MainForm.CreateDefaultSettings(dpi, colour, adf);
     this.mainForm.scanData.Clear();
     try
     {
         this.mainForm.twain.StartScanning(settings);
     }
     catch (Exception ex)
     {
         if (Properties.Settings.Default.useADF)
         {
             settings.AbortWhenNoPaperDetectable = false;
             settings.ShouldTransferAllPages = false;
             settings.UseAutoFeeder = false;
             settings.UseDocumentFeeder = false;
             this.mainForm.twain.StartScanning(settings);
         }
         else
         {
             throw ex;
         }
     }
 }