Tailles de page personnalisées et automatiques
Une application peut définir la taille de page via la détection automatique par le scanneur ou par le biais de valeurs personnalisées. L’approche utilisée par l’application est déterminée par la propriété WIA_IPS_PAGE_SIZE , qui peut prendre les valeurs WIA_PAGE_AUTO ou WIA_PAGE_CUSTOM.
Si une application définit WIA_IPS_PAGE_SIZE sur une valeur autre que WIA_PAGE_CUSTOM, le minidriver WIA doit ajuster les valeurs de WIA_IPS_PAGE_WIDTH et WIA_IPS_PAGE_HEIGHT aux dimensions de la page en millièmes de pouce (.001). Le minidriver doit également ajuster les valeurs de WIA_IPS_XEXTENT et WIA_IPS_YEXTENT aux dimensions de la page, en pixels.
Si un paramètre d’étendue (WIA_IPS_XEXTENT ou WIA_IPS_YEXTENT) est remplacé par une valeur qui ne correspond pas au paramètre de taille de page actuel, le minidriver doit modifier la valeur de la propriété WIA_IPS_PAGE_SIZE en WIA_PAGE_CUSTOM. Le minidriver doit également modifier WIA_IPS_PAGE_WIDTH ou WIA_IPS_PAGE_HEIGHT pour accepter le nouveau paramètre d’étendue.
Si une application définit la propriété WIA_IPS_PAGE_SIZE sur WIA_PAGE_CUSTOM, la zone de sélection actuelle n’est pas affectée. Le minidriver WIA doit obtenir la disposition actuelle de l’image, en commençant par les paramètres actuels des propriétés WIA_IPS_XPOS et WIA_IPS_YPOS . Si le paramètre de taille de page fait que la zone de sélection se trouve à l’extérieur du lit du scanneur, le mini-lecteur doit ajuster automatiquement les valeurs des propriétés WIA_IPS_XPOS et WIA_IPS_YPOS aux paramètres valides. Si les propriétés WIA_IPS_PAGE_SIZE et WIA_IPS_ORIENTATION sont définies en même temps et qu’elles ne sont pas valides lorsqu’elles sont appliquées en combinaison, le minidriver doit échouer dans les paramètres de l’application en retournant une erreur dans la méthode IWiaMiniDrv::d rvValidateItemProperties .
Lorsque la détection automatique de la taille de page est activée, le pilote doit fournir des informations de dimension d’image précises uniquement après avoir terminé le transfert des données d’image. Pour les transferts basés sur le flux, le pilote est censé mettre à jour les dimensions de l’image dans l’en-tête d’image à la fin du transfert. Au début d’une nouvelle session, la valeur de la propriété WIA_IPS_PAGE_SIZE doit toujours être définie sur une valeur autre que WIA_PAGE_AUTO.
Lorsque WIA_PAGE_AUTO est défini en tant que valeur de WIA_IPS_PAGE_SIZE actuelle, le pilote peut devoir d’abord transférer un en-tête d’image contenant des dimensions d’image génériques, puis transférer les données d’image, puis revenir au début du flux de transfert, mettre à jour l’en-tête d’image avec les dimensions réelles de l’image (trouvées une fois l’analyse terminée), et déplacez l’index de flux vers la fin du flux.
Lorsque WIA_PAGE_AUTO est défini (choisi comme valeur par défaut par le pilote ou défini par l’application), l’application ne doit pas tenter de traiter les dimensions de l’image décrites par l’en-tête d’image tant que le transfert d’image entier n’est pas terminé.
Note La couche de compatibilité au sein du service WIA n’ajoute pas la prise en charge de WIA_IPS_PAGE_SIZE à l’élément ADF traduit à partir d’un appareil WIA Windows XP si la propriété n’est pas prise en charge sur l’élément enfant de l’appareil. Les applications ne doivent pas s’attendre à ce qu’un élément ADF prend toujours en charge cette propriété et doivent toujours case activée si WIA_IPS_PAGE_SIZE est pris en charge au moment de l’exécution. (En règle générale, les applications doivent case activée la prise en charge de toute propriété à négocier.)