2010-02-11 25 views
8

Sto usando WIA per acquisire immagini da uno scanner con C#. Posso scansionare i documenti, ma non riesco a impostare correttamente le dimensioni della pagina, è sempre in formato A4 e devo usare Letter o Legal a volte.Impostare la dimensione della pagina usando WIA (con scanner)

Ho provato con la proprietà WIA_DPS_PAGE_SIZE, ma quando provo a impostare un valore, ottengo sempre un errore, che il valore è fuori intervallo (ho provato un sacco di valori possibili).

I wan't essere in grado di utilizzare WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTO (per la dimensione della pagina automatica), ma non riesco a trovare nulla sul web relativo a questo.

Qualcuno conosce una soluzione? Grazie!

risposta

10

So che probabilmente è troppo tardi per aiutarti davvero, ma potrebbe essere utile per riferimenti futuri. Per modificare gli elementi scansionati proprietà utilizzano tale codice:

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

Ciò significa che documento scansionata sarà formato A4 con dimensioni 619 x 876.

Problemi correlati