2015-02-11 288 views
1

在我的应用程序中,我正在使用TwainDotNet库,并且正在从平板扫描特定区域。TwainDotNet特定区域扫描

public Prasymas scanForm(Prasymas prasymas, bool isItFirstScan) 
    { 

     Enabled = false; 

     _settings = new ScanSettings(); 
     _settings.UseDocumentFeeder = false; 
     _settings.ShowTwainUI = false; 
     _settings.ShowProgressIndicatorUI = true; 
     _settings.UseDuplex = false; 
     _settings.Resolution = 
      false 
      ? ResolutionSettings.Fax : ResolutionSettings.ColourPhotocopier; 
     _settings.Page = PageSettings.Default; 

     if (!isItFirstScan) 
     { 
      _prasymas = prasymas; 
      AreaSettings = new AreaSettings(Units.Centimeters, 0.0f, 0.0f, (float)(_prasymas.maxScanAukstis), 0.0f);     
     } 
     else 
     { 
      _settings.Area = !false ? null : AreaSettings; 
     } 
     _settings.ShouldTransferAllPages = true; 


     _settings.Rotation = new RotationSettings() 
     { 
      AutomaticRotate = false, 
      AutomaticBorderDetection = false 
     }; 

     try 
     { 
      _twain.SelectSource(); 
      _twain.StartScanning(_settings); 
     } 
     catch (TwainException ex) 
     { 
      if (ex.Message == "Error opening data source") 
      { 
       _twain.SelectSource(); 
       scanForm(_prasymas, isItFirstScan); 
       Enabled = true; 
      } 
      else 
       throw ex; 

     } 
     catch (Exception exc) 
     { 
      if (exc.Message == "Pasiuto skeneris") 
      { 
       scanForm(_prasymas, true);      
      } 
      else 
       throw exc; 

     } 

     Enabled = true; 
     return prasymas; 
    } 

但开始扫描和扫描源时的结果是Twain驱动程序,它会扫描整个页面,但如果让我选择WIA驱动程序我得到特别选定的区域。 主要想法是应用程序第一次启动时会扫描整个页面,下次只扫描页面的特定高度。

回答

0

阅读文档后,我发现只需要注释旋转部分,一切都开始工作。我可以扫描选定的区域。