Adición de compatibilidad con el alimentador de documentos
Importante
Este artículo contiene información que se aplica a los sistemas operativos Windows obsoletos.
Un alimentador de documentos es una unidad adjunta o integrada en un escáner que alimenta automáticamente documentos de papel en una posición que se va a examinar. Para un analizador con un alimentador de documentos, la funcionalidad se expone y controla mediante la adición de las propiedades contenidas en la lista siguiente. Para Windows Me y Windows XP, las siguientes propiedades se encuentran en el elemento raíz:
Para Windows Me y Windows XP, las siguientes propiedades opcionales del alimentador de documentos se encuentran en el elemento secundario:
Si un dispositivo tiene un plano, un alimentador de documentos y un dúplex, el controlador notifica la propiedad WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES como FEED | FLAT | DUP
. Asegúrese de que los valores válidos para WIA_DPS_DOCUMENT_HANDLING_SELECT estén configurados correctamente.
Por ejemplo, supongamos que una aplicación pretende realizar un examen dúplex de tres páginas del alimentador de documentos. Para ello, la aplicación establece la propiedad WIA_DPS_DOCUMENT_HANDLING_SELECT en (FEEDER | DUPLEX) y establece la propiedad WIA_DPS_PAGES en 3. Si la aplicación pretende examinar primero la parte frontal de la página, debe establecer la propiedad WIA_DPS_DOCUMENT_HANDLING_SELECT en FEEDER | DUPLEX | FRONT_FIRST
. Una vez hecho esto, la aplicación debe navegar al elemento secundario desde el que debe solicitar una transferencia de datos. El minidriver informa de la parte delantera de la primera página del alimentador como página uno, la parte posterior de esa página como página dos y la parte delantera de la segunda página del alimentador como página tres.
Es importante recordar que si el dispositivo tiene un alimentador de documentos, debe admitir las propiedades del alimentador de documentos.
Adquisición de datos de un alimentador de documentos
Hay algunos cambios que se deben realizar en la implementación del método IWiaMiniDrv::d rvAcquireItemData cuando el analizador adquiere imágenes de un alimentador de documentos.
Una aplicación lee la propiedad WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES para determinar si el analizador admite el examen mediante el alimentador de documentos.
Una aplicación lee la propiedad WIA_DPS_DOCUMENT_HANDLING_SELECT para determinar si el analizador está configurado para examinar mediante el alimentador de documentos.
Una aplicación determina si hay papel en el alimentador de documentos leyendo WIA_DPS_DOCUMENT_HANDLING_STATUS. Si no hay ningún papel en el alimentador, establezca el WIA_DPS_DOCUMENT_HANDLING_STATUS en el código de estado adecuado y devuelva WIA_ERROR_PAPER_EMPTY de IWiaMiniDrv::d rvAcquireItemData inmediatamente después de que se realice una adquisición.
Compruebe la propiedad WIA_DPS_PAGES para determinar el comportamiento del examen. Si esta propiedad es cero, examine todas las páginas hasta que el alimentador esté vacío. Si es positivo, examine solo el número de páginas indicadas por el valor contenido en la propiedad WIA_DPS_PAGES.
Examine el número solicitado de páginas mediante el control de un bucle, el examen continuo y el envío de datos (una página a la vez) a la aplicación WIA mediante una llamada al método IWiaMiniDrvCallBack::MiniDrvCallback . En el ejemplo de código siguiente se muestra cómo puede funcionar esto:
for(int x=1; x=Pagecount; x++) { \\ Tell scanner to scan an image. \\ Receive image data from scanner. \\ Send the just-scanned image to the registered application. }
Si WIA_IPA_TYMED se establece en TYMED_CALLBACK o TYMED_MULTIPAGE_CALLBACK, se debe enviar un mensaje adicional (IT_MSG_NEW_PAGE) después de examinar una página y antes de que se examine la siguiente. Esto se hace llamando a la función de utilidad wiasSendEndOfPage WIA.
El número de páginas que devuelve un controlador de fuente de documentos depende del valor de la propiedad WIA_DPS_PAGES.
Si WIA_DPS_PAGES es cero
Si el analizador no puede examinar la primera página, devuelva inmediatamente un código de error. Esto incluye atascos de papel y cuando el escáner se queda sin papel.
Si el escáner examina correctamente la primera página y es capaz de continuar con el examen, pero se ha quedado sin papel, devuelva el código correcto WIA_STATUS_END_OF_MEDIA. Esto indica a la aplicación que la transferencia se realizó correctamente, pero el escáner se ha quedado sin papel. Algunas aplicaciones responden a WIA_ERROR_PAPER_EMPTY de la misma manera que lo harían WIA_STATUS_END_OF_MEDIA.
Si el analizador examina correctamente la primera página y puede continuar examinando, pero encuentra un error que no da lugar a la pérdida de datos, devuelva WIA_STATUS_END_OF_MEDIA. Esto permite que la aplicación se recupere y guarde las páginas examinadas antes de que se produjera el error. Los exámenes posteriores deben devolver un código de error inmediatamente hasta que el analizador se haya recuperado correctamente del error.
Si el analizador examina correctamente la primera página y es capaz de continuar examinando, pero encuentra un error que produce una pérdida de datos, devuelva un código de error inmediatamente.
Si WIA_DPS_PAGES es positivo
Todas las reglas para las que WIA_DPS_PAGES son cero.
Si el escáner se queda sin papel antes de examinar el número solicitado de páginas, devuelva WIA_STATUS_END_OF_MEDIA. Esto permite que la aplicación cierre la sesión de examen, conservando así el número de páginas que ya ha examinado correctamente. Algunas aplicaciones responden a WIA_ERROR_PAPER_EMPTY de la misma manera que lo harían WIA_STATUS_END_OF_MEDIA.