2010-02-11 37 views
8

Ich verwende WIA, um Bilder von einem Scanner mit C# zu erfassen. Ich kann die Papiere scannen, aber ich kann die Seitengröße nicht richtig einstellen, es ist immer A4 und ich muss manchmal Letter oder Legal verwenden.Seitengröße mit WIA (mit Scanner) einstellen

Ich versuchte mit der WIA_DPS_PAGE_SIZE Eigenschaft, aber wenn ich versuche, einen Wert zu setzen, erhalte ich immer einen Fehler, dass der Wert außerhalb des Intervalls ist (versuchte viele mögliche Werte).

Ich könnte WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTO (für automatische Seitengröße) verwenden, aber ich kann nichts im Web dazu finden.

Kennt jemand eine Lösung? Vielen Dank!

Antwort

10

Ich weiß, dass dies wahrscheinlich zu spät ist, um Ihnen tatsächlich dabei zu helfen, aber es könnte für zukünftige Referenz nützlich sein. Um die gescannten Bilder zu ändern Eigenschaften verwenden, einen solchen Code:

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); 
} 

Das bedeutet, dass gescannte Dokumentengröße A4 wird mit den Abmessungen 619 x 876.