public WiaScanningModeFlags ScanningMode { get; set; }
The scanner acquisition source and mode. Possible values are (according to Microsoft SDK documentation):
Use this value only to determine whether the WiaProperties structure is filled with a valid scanning mode. | |
Scan using the document feeder. | |
Scan using the flatbed. | |
Scan using duplexer operations. | |
Enables automatic feeding of the next document after a scan. | |
Scan the front of the document first. This value is valid when Duplex is set. | |
Scan the back of the document first. This value is valid when Duplex is set. | |
Scan the front only. This value is valid when Duplex is set. | |
Scan the back only. This value is valid when Duplex is set. | |
Scan the next page of the document. | |
Enable pre-feed mode. Pre-position next document while scanning. | |
Scan using individual settings configured for each child feeder item. Duplex and AdvancedDuplex cannot both be set. |
For more information about these scanning modes, refer to Microsoft Windows SDK Documentation for the WIA_DPS_DOCUMENT_HANDLING_SELECT property ID (if you are using WIA 1.0) or WIA_IPS_DOCUMENT_HANDLING_SELECT property ID (if you are using WIA 2.0).
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Wia;
WiaSession wiaSession;
public void GetRootItemExample(IntPtr parent)
{
if (!WiaSession.IsAvailable(WiaVersion.Version1))
{
Console.WriteLine("WIA version 1.0 not installed.");
return;
}
wiaSession = new WiaSession();
wiaSession.Startup(WiaVersion.Version1);
DialogResult res = wiaSession.SelectDeviceDlg(parent, WiaDeviceType.Default, WiaSelectSourceFlags.NoDefault);
if (res != DialogResult.OK)
{
Console.WriteLine("Error selecting WIA device.");
wiaSession.Shutdown();
return;
}
object rootItem = wiaSession.GetRootItem(null);
if (rootItem != null)
{
wiaSession.EnumItemsEvent += new EventHandler<WiaEnumItemsEventArgs>(wiaSession_EnumItemsEvent);
wiaSession.EnumChildItems(rootItem);
wiaSession.EnumItemsEvent -= new EventHandler<WiaEnumItemsEventArgs>(wiaSession_EnumItemsEvent);
}
wiaSession.Shutdown();
}
void wiaSession_EnumItemsEvent(object sender, WiaEnumItemsEventArgs e)
{
if (e.Item != null)
{
WiaDataTransferProperties dataTransfer = WiaDataTransferProperties.Empty;
WiaImageEffectsProperties imageEffects = WiaImageEffectsProperties.Empty;
WiaProperties properties = wiaSession.GetProperties(e.Item);
dataTransfer.ImageDataType = WiaImageDataType.Grayscale;
imageEffects.Brightness = 250;
properties.DataTransfer = dataTransfer;
properties.ImageEffects = imageEffects;
properties.ScanningMode = WiaScanningModeFlags.Feeder; // set scanning source to Feeder
properties.MaximumNumberOfPages = 0; // scan all pages in feeder
properties.ImageType = WiaImageType.Grayscale;
properties.Orientation = WiaOrientation.Portrait;
WiaImageResolutionProperties imageResolution = properties.ImageResolution;
imageResolution.BitsPerPixel = 8;
imageResolution.HorizontalResolution = 600;
imageResolution.VerticalResolution = 600;
properties.ImageResolution = imageResolution;
wiaSession.SetPropertiesEvent += new EventHandler<WiaSetPropertiesEventArgs>(wiaSession_SetPropertiesEvent);
wiaSession.SetProperties(e.Item, properties);
wiaSession.SetPropertiesEvent -= new EventHandler<WiaSetPropertiesEventArgs>(wiaSession_SetPropertiesEvent);
wiaSession.FreeItem(e.Item);
}
}
void wiaSession_SetPropertiesEvent(object sender, WiaSetPropertiesEventArgs e)
{
if (e.Error <= 0)
{
Console.WriteLine("Failed to set the below property:\n\tProperty Id: {0}\n\tProperty Value: {1}\n\tError: {2}\n\n", e.PropertyId.ToString(), e.Value.ToString(), e.Error.ToString());
}
}