This project has moved. For the latest updates, please go here.


Jun 21, 2013 at 5:45 PM
I'd like set up the feeder to scan.

Can you help me, please?
Jun 22, 2013 at 12:03 PM
Hello, diamelma.

From the TWAIN application's point of view the duplex scanning, once enabled, is the same as multi page scanning. Duplex can be enabled (for devices and Data Sources supporting it) either programmatically using CAP_DUPLEXENABLED or from the Data Source GUI.

The application can check the CAP_DUPLEX value to know if duplex is supported and what duplex mode is supported by the device (one pass or two pass duplex).

Before setting CAP_DUPLEXEMABLED to True the application may need to enable the document feeder setting CAP_FEEDERENABLED (and CAP_AUTOFEED for automatic document feeding) to True and set CAP_XFERCOUNT to either -1 or a multiple of 2 value.

See also:
CAP_AUTOFEED: MSG_SET to TRUE to enable Source’s automatic feeding
CAP_CLEARPAGE: MSG_SET to TRUE to eject current page and leave acquire area empty
CAP_DUPLEX: Indicates whether the scanner supports duplex.
CAP_DUPLEXENABLED: Enables the user to set the duplex option to be TRUE or FALSE.
CAP_FEEDERALIGNMENT: Indicates the alignment of the document feeder.
CAP_FEEDERENABLED: If TRUE, Source’s feeder is available
CAP_FEEDERLOADED: If TRUE, Source has documents loaded in feeder (MSG_GET only)
CAP_FEEDERORDER: Specifies whether feeder starts with top of first or last page.
CAP_FEEDPAGE: MSG_SET to TRUE to eject current page and feed next page
CAP_PAPERDETECTABLE: Determines whether source can detect documents on the ADF or flatbed.
CAP_REACQUIREALLOWED: Capable of acquring muliple images of the same page wihtout changing the physical registraion of that page.
CAP_REWINDPAGE: MSG_SET to TRUE to do a reverse feed

The following example show as enable feeder:
try {
    if((this._twain32.IsCapSupported(TwCap.Duplex)&TwQC.Get)!=0) {
        var _duplexCapValue=(ushort)this._twain32.GetCap(TwCap.Duplex);
        if(_duplexCapValue>0) {
            // 0 - TWDX_NONE
            // 1 - TWDX_1PASSDUPLEX
            // 2 - TWDX_2PASSDUPLEX

            if((this._twain32.IsCapSupported(TwCap.FeederEnabled)&TwQC.Set)!=0) {

                if((this._twain32.IsCapSupported(TwCap.XferCount)&TwQC.Set)!=null) {

                    if((this._twain32.IsCapSupported(TwCap.DuplexEnabled)&TwQC.Set)!=0) {
} catch(TwainException ex) {
Marked as answer by SARAFF on 6/23/2014 at 12:48 PM
Jun 26, 2013 at 10:57 PM
Hi, Thanls you I did something like that:

paperSrc = true;
                if ((TwQC)twainDevice.IsCapSupported(TwCap.DuplexEnabled) != 0)
                    twainDevice.SetCap(TwCap.DuplexEnabled, paperSrc);
But your solution is more complete, I´m going to use.

Thank you!