2010-02-11 14 views
8

J'utilise WIA pour acquérir des images à partir d'un scanner avec C#. Je peux numériser les documents, mais je ne peux pas configurer le format de la page correctement, il est toujours défini par défaut sur A4 et j'ai parfois besoin d'utiliser Letter ou Legal.Définir la taille de la page en utilisant WIA (avec scanner)

J'ai essayé avec la propriété WIA_DPS_PAGE_SIZE, mais lorsque j'essaie de définir une valeur, j'obtiens toujours une erreur, que la valeur est en dehors de l'intervalle (j'ai essayé beaucoup de valeurs possibles).

Je ne pouvais pas utiliser WIA_DPS_PAGE_SIZE = WIA_PAGE_AUTO (pour le format de page automatique), mais je ne trouve rien sur le web à ce sujet.

Est-ce que quelqu'un connaît une solution? Merci!

Répondre

10

Je sais que c'est probablement trop tard pour vous aider, mais cela peut devenir utile pour de futures références. Pour modifier les propriétés des éléments scannés utilisent ce 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); 
} 

Cela signifie que le document numérisé sera la taille A4 avec des dimensions 619 x 876.