Problème de Scanner : Configuration TWAIN sous windows 7 64 bits

Suite à un changement de PC, me voilà à tenter de faire fonctionner un scanner canon LIDE 25 sur windows 7, version 64 bits. Et là, catastrophe: l’échec est total. Que ce soit via Irfanview ou foxit reader, impossible de scanner. Après avoir perdu plusieures soirées sur le sujet, voici mon analyse du problème (visiblement assez courant), et la solution trouvée.

Tout dSchéma de l'organisation application/Twain/Pilotes pour scanner un document‘abord, comment se présente la chaine d’acquisition du scanner?
Les applications (acrobat reader, irfanview, libre office…), elles-mêmes compilées en 32 ou 64 bits, appellent des fonctions dans les bibliothèques Twain (typiquement twainDSM.dll, la plus récente, twain.dll et twain_32.Dll) fournies par windows. Ces bibliothèques appellent à leur tour les pilotes spécifiques du scanner (fournis par le fabricant).

Chacun de ces niveaux peut être compilé pour un système 32 ou 64 bits. Dans le cas de l’OS 64 bit, windows possède deux ensembles de répertoires système: l’un pour tout ce qui est en 64 bits, l’autre pour tout ce qui est en 32 bits, fourni pour permettre la compatibilité avec les programmes plus anciens. Des redirections permettent normalement de fournir des versions de librairies (dll) 32 bits pour les programmes en 32, et 64 pour ceux en 64.

Dans le cas de l’erreur twain qui nous occuppe, le fabricant du canoscan LIDE 25 fournit un pilote officiellement en 64 bits (« lide25vst6411011aen.exe » en mai 2019). Lors de l’installation, ce pilote se retrouve dans un répertoire c:\windows\TWAIN_32\

S’agit-il d’un répertoire de bibliothèques 32 bits? A priori non, les librairies 32 bits devant se trouver dans le répertoire intelligemment nommé « C:\Windows\SysWOW64″…

C’est là que l’on peut avoir un problème: Dans le cas d’une application 32bits, type foxit reader, la bibliothèque appelée sera celle placée dans le répertoire 32bit aka SysWOW64… mais le pilote du scanner est lui dans un répertoire en dehors de la zone réservée aux applications 32 bits, d’où semble-t-il l’erreur « scanner HS » obtenue.
Erreur: "The scanner you selected doesn't work. Please select another one"Si on utilise irfanview (32bits), le message est différent et indique « RMSlantc.dll manquante ». Idem avec la version 64 bits d’irfanview, avec la curiosité que le scanner n’apparaît pas dans la liste des appareils TWAIN disponibles.
Erreur: "Impossible de démarrer le programme car il manque rmslantc.dll sur votre ordinateur"
Ce fichier DLL fait justement partie du pilote Canon que l’on vient d’installer! Et, si on le copie dans le répertoire pour applications 32 bits (aka « SysWOW64 »), il cesse de manquer… Malheureusement, même si l’on copie tous les fichiers du driver en vrac dans SysWOW64, le problème n’est pas réglé, et on découvre une nouvelle erreur « TWAIN driver not installed ».
Erreur twain: "Can't connect to device or Twain driver is not installed"

A ce stade, on peut soupçonner que notre application tente de trouver dans un répertoire réservé (SysWOW64?) qui n’est pas le bon, les dll dont elle a besoin pour accéder au scanner. Bref, les merveilleuses redirections de l’OS ne fonctionnent pas. Que peut-on faire? Ajouter une variable PATH, contenant le chemin du répertoire dans lequel se trouve notre pilote de scanner…
Où modifier la variable environnement PATH sous windows 7?

Redémmarrage, et là, miracle, ça fonctionne -du moins sur ma machine-

Ce contenu a été publié dans Technique. Vous pouvez le mettre en favoris avec ce permalien.

Les commentaires sont fermés.