Scan multiple pages using WIA automation

user628060 picture user628060 · Feb 22, 2011 · Viewed 6.9k times · Source

I'm playing around with WIA Automation and I`m struggling to scan more than page at a time. Can anyone give me some hints on how to achieve this? Below is a sample of code I use to scan a document/image:

public static byte[] ScanImage(int colourType, string formatId, int dpi)
    {
      _dialog = new CommonDialogClass();
      _scanner = _dialog.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, false, false);     

  foreach (Property item in _scanner.Items[1].Properties)
  {
    switch (item.PropertyID)
    {
      case 6146: //4 is Black-white,gray is 2, colour 1   
        SetProperty(item, colourType);
        break;
      case 6147: //dots per inch/horizontal    
        SetProperty(item, dpi);
        break;
      case 6148: //dots per inch/vertical          
        SetProperty(item, dpi);
        break;
      case 6149: //x point where to start scan   
        SetProperty(item, 0);
        break;
      case 6150: //y-point where to start scan  
        SetProperty(item, 0);
        break;
      case 6151: //horizontal extent        
        SetProperty(item, (int)(8.5 * 100));
        break;
      case 6152: //vertical extent             
        SetProperty(item, 11 * 100);
        break;
    }
  }

  try
  {
    TempPath = System.IO.Path.GetTempPath() + "temp" + DateTime.Now.Ticks;

    ScannedImage = (ImageFile)_scanner.Items[1].Transfer(formatId);
    //System.IO.File.Delete(TempPath);
    ScannedImage.SaveFile(TempPath);

    //Convert image to binary
    Vector vector = ScannedImage.FileData;
    byte[] imgBin = (byte[])vector.get_BinaryData();
    ScannedImageBinary = (byte[])vector.get_BinaryData();

    //ImageFromFile = Image.FromFile(TempPath);
  }
  catch (Exception ex)
  { }

  return ScannedImageBinary;
}

Answer

gideon picture gideon · Sep 8, 2011

So it seems like your talking C#.

See this answer : Using C#/WIA version 2.0 on Vista to Scan

I wrote a small library for scanning multiple documents on an ADF scanner:
http://adfwia.codeplex.com/