Dynamic Web TWAIN: How to detect and discard blank pages automatically?

  1. If the TWAIN driver of your device supports discarding blank pages, you can use the driver's built-in feature.
      1. You can set the IfShowUI property to true to display the User Interface (UI) of the source and you can check the option there (it normally reads 'discard blank')
      2. If you don't want to show the user interface of the source, you can set IfAutoDiscardBlankpages to true or negotiate the ICAP_AUTODISCARDBLANKPAGES capability in code to discard blank page automatically. Please NOTE that this property or capability only works if the scanner itself supports the feature (on the hardware level).

    Code Snippet

    DWObject.SelectSource();
    DWObject.OpenSource;
    DWObject.IfShowUI = false;
    //*Use the property
    DWObject.IfAutoDiscardBlankpages = true;
    //*Use capability negotiation
    DWObject.Capability = EnumDWT_Cap.ICAP_AUTODISCARDBLANKPAGES;
    DWObject.CapType = EnumDWT_CapType.TWON_ONEVALUE;
    DWObject.CapValue = -1;//Auto
    if(DWObject.CapSet){
       alert("Successful!");
    }
    DWObject.AcquireImage();
  2. If the scanner itself doesn't support discarding blank pages, you can also use the IsBlankImageExpress method to do this as a workaround. To detect and discard blank pages automatically, you can do it in the OnPostTransfer event which fires after each transfer.

    Code Snippet

    function DWObject_OnPostTransfer() {
    DWObject.BlankImageMaxStdDev = 20;
    if (DWObject.IsBlankImageExpress(DWObject.CurrentImageIndexInBuffer)) {
       DWObject.RemoveImage(DWObject.CurrentImageIndexInBuffer);
       }
    }

NOTE: In many cases, the scanned blank image may come with some noises which would affect the result returned by IsBlankImageExpress. To improve the result, you may adjust the value of BlankImageMaxStdDev Property. The default value is 1 (0 means single-color image). Thus, by increasing the value a little bit (e.g. to 20), noises on images are ignored so a blank image can be detected faster.