2010-02-11 20 views
8

Estoy usando WIA para adquirir imágenes de un escáner con C#. Puedo escanear los documentos, pero no puedo configurar correctamente el tamaño de la página, siempre tiene el valor predeterminado en A4 y necesito usar Letter o Legal algunas veces.Configurar el tamaño de página usando WIA (con escáner)

Intenté con la propiedad WIA_DPS_PAGE_SIZE, pero cuando intento establecer un valor, siempre aparece un error, que el valor está fuera del intervalo (intenté con muchos valores posibles).

Quiero poder usar WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTO (para el tamaño de página automático), pero no puedo encontrar nada en la web relacionado con esto.

¿Alguien sabe una solución? ¡Gracias!

Respuesta

10

Sé que es probable que ya sea demasiado tarde para ayudarlo con eso, pero puede ser útil para futuras consultas. Para cambiar los elementos escaneados propiedades de uso tal código:

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

Esto significa que el documento escaneado estará tamaño A4 con dimensiones 619 x 876.

Cuestiones relacionadas