2010-02-11 11 views
8

C# ile tarayıcıdan resim almak için WIA kullanıyorum. Kağıtları tarayabilirim, ancak sayfa boyutunu doğru olarak ayarlayamıyorum, her zaman varsayılan olarak A4 ve varsayılan olarak Letter veya Legal kullanmam gerekiyor.Sayfa boyutunu WIA (tarayıcıyla) kullanarak ayarlayın

WIA_DPS_PAGE_SIZE özelliği ile denedim, ancak bir değer ayarlamaya çalıştığımda, her zaman bir hata alıyorum, değerin aralığın dışında olduğunu (çok sayıda olası değer denedim).

WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTO (otomatik sayfa boyutu için) kullanamıyorum, ancak web ile ilgili hiçbir şey bulamıyorum.

Herkes bir çözüm biliyor mu? Teşekkürler!

cevap

10

Bunun gerçekten size yardımcı olması için çok geç olduğunu biliyorum, ancak ileride başvurmak için kullanışlı olabilir. özellikleri böyle kodu kullanabilirsiniz taranan öğeleri değiştirmek için:

WIA.CommonDialog wiaDlg; 
WIA.Device wiaDevice; 
WIA.DeviceManager wiaManager = new DeviceManager(); 

wiaDlg = new WIA.CommonDialog(); 
wiaDevice = wiaDlg.ShowSelectDevice(WiaDeviceType.ScannerDeviceType, false, false); 

foreach (WIA.Item item in wiaDevice.Items) 
{ 
    StringBuilder propsbuilder = new StringBuilder(); 

    foreach (WIA.Property itemProperty in item.Properties) 
    { 
     IProperty tempProperty; 
     Object tempNewProperty; 

     if (itemProperty.Name.Equals("Horizontal Resolution")) 
     { 
      tempNewProperty = 75; 
      ((IProperty)itemProperty).set_Value(ref tempNewProperty); 
     } 
     else if (itemProperty.Name.Equals("Vertical Resolution")) 
     { 
      tempNewProperty = 75; 
      ((IProperty)itemProperty).set_Value(ref tempNewProperty); 
     } 
     else if (itemProperty.Name.Equals("Horizontal Extent")) 
     { 
      tempNewProperty = 619; 
      ((IProperty)itemProperty).set_Value(ref tempNewProperty); 
     } 
     else if (itemProperty.Name.Equals("Vertical Extent")) 
     { 
      tempNewProperty = 876; 
      ((IProperty)itemProperty).set_Value(ref tempNewProperty); 
     } 
    } 

    image = (ImageFile)item.Transfer(WIA.FormatID.wiaFormatPNG); 
} 

Bu taranmış doküman boyutları ile boy A4 olacağı anlamına gelir 619 x 876.