Comment numériser des documents sous Linux avec les commandes les plus utiles de SANE

Scanner Access Now Easy (SANE) est une interface de programmation d'application (API) utilisée pour contrôler les scanners et les caméras. Lors de son utilisation, l'application de ligne de commande, scanimage, peut être utilisée pour envoyer rapidement et de manière fiable des commandes de scanner afin d'exécuter un certain nombre de fonctions utiles.

Voici comment tirer le meilleur parti de SANE pour numériser des documents et des photos.

Obtenez-vous SANE maintenant

L'API peut être installée à l'aide de votre gestionnaire de packages. Par exemple, dans un système Debian:

 sudo apt install sane

… installe l'API SANE et fournit le scanimage de l'application en ligne de commande. (Il installe également les outils frontaux xscanimage, scanadf et xcam). L'exécution de la commande suivante affiche toutes les options disponibles:

 scanimage -h

Maintenant, il est important de noter que vous pouvez envoyer des commandes API avec des commandes spécifiques au scanner, le tout dans la même ligne de commande. De plus, la sortie de -h peut être un peu déroutante du fait que les options de l'API et les options du scanner sont simplement imprimées sur le terminal dans un style concaténé.

Si aucun scanner n'est détecté, vous n'obtiendrez que les options de l'API. Si un scanner est détecté, vous pouvez rencontrer un délai notable pendant que les informations du périphérique scanner sont récupérées, envoyées à l'API et formatées. La commande semble bloquer, mais attendez et elle se terminera.

Cela dit, si vous ne voulez que les options du périphérique (options "backend" pour le scanner lui-même), vous pouvez utiliser l'option -A :

 scanimage -A

Notez que pour cet article, la version SANE 1.0.14-15 est utilisée comme exemple. Votre version particulière peut varier et avoir des options quelque peu différentes. Si vous avez des questions, lancez simplement scanimage avec l'option -h .

Bien sûr, chaque scanner aura son propre ensemble d'options possibles, alors essayez certainement avec celles-ci pour affiner les commandes que vous envoyez afin d'obtenir les meilleurs résultats.

Connexes: Comment numériser d'anciennes diapositives avec un scanner à plat

Commandes SANE faciles et simples

Oui, c'est facile et simple que nous voulons tous. Vous devez commencer quelque part, et la commande la plus simple que vous pouvez utiliser pour analyser quelque chose est:

 scanimage > scan_out

Cela fonctionnera si votre scanner est détecté par l'API. La sortie est envoyée directement à la sortie standard dans ce cas, puis redirigée vers le fichier, scan_out. Le format d'image par défaut est PNM et le mode par défaut (par exemple, dessin au trait, monochrome ou couleur) est déterminé par le scanner. Si le scanner n'est pas détecté, vous obtiendrez cette sortie (ou similaire):

 scanimage: no SANE devices found

Vous recevrez également un message d'information concernant le format de sortie non défini. C'est simplement parce que le format d'image par défaut est pnm. Cela peut être changé en TIFF, PNG ou JPEG.

 Output format is not set, using pnm as a default.

Spécification du fichier de sortie

La sortie standard peut être redirigée vers un fichier en utilisant > ou vous pouvez émettre une option explicite pour spécifier le nom et le chemin complet du fichier de sortie, par exemple:

 scanimage -o scan_out.png

Dans ce cas, l'API affichera une image au format PNG.

Liste et utilisation des appareils

Vous voulez vous assurer que votre scanner est détecté par SANE? Exécutez cette commande:

 scanimage -L

Il listera tous les appareils détectés. Si un seul appareil a à la fois un LAN connecté et une connexion USB, il les listera sur des lignes séparées.

Par exemple, un Epson WorkForce WF-3640 peut être répertorié comme ceci:

 device `epson2:net:192.168.1.26' is a Epson PID 08B8 flatbed scanner
device `epson2:libusb:001:005' is a Epson PID 08B8 flatbed scanner

Dans ce cas, vous pouvez utiliser soit comme adresse pour envoyer et recevoir des données:

 scanimage -d epson2:net:192.168.1.26 -o scan_out.png

ou

 scanimage -d epson2:libusb:001:005 -o scan_out.png

Notez que si vous débranchez et reconnectez l'USB dans un port différent, l'adresse USB changera. Dans ce cas, vous devez vous assurer que l'adresse de votre appareil est la même que la nouvelle imprimée lorsqu'elle est à nouveau répertoriée.

En relation: Les meilleurs scanners de photos pour sauvegarder d'anciennes photos

Définir un format d'image différent

Si vous voulez un format d'image différent, vous pouvez émettre la même commande comme ceci:

 scanimage -o scan_out.tiff

SANE tentera de deviner le format en fonction de l'extension de fichier. Le format peut également être défini explicitement avec:

 scanimage --format=tiff -o scan_out.tiff

ou même ceci:

 scanimage --format=tiff > scan_out

Commandes par lots

Eh bien, que pouvez-vous retirer de plus de l'API? Voici ce que vous pouvez obtenir: des commandes par lots pour contrôler un chargeur automatique de documents (ADF) pour numériser des pages en séquence.

Bien que le scanner puisse produire uniquement des formats d'image, ceux-ci peuvent également être convertis en texte via une application de reconnaissance optique de caractères (OCR), telle que gocr .

Notez que pour produire un document raisonnablement détaillé pour la préservation du document ou une conversion OCR, vous devrez peut-être envoyer des commandes spécifiques au scanner. Celles-ci seront notées ci-dessous.

Connexes: Les meilleures façons de numériser et de numériser de vieilles photos

Un exemple de traitement par lots

Vous voudrez utiliser différents formats en fonction de l'objectif du résultat final. Par exemple, si l'application OCR que vous envisagez d'utiliser n'accepte que les images PNM, votre format de fichier image doit être PNM.

Voici un exemple d'envoi d'une commande pour numériser une page de texte imprimé afin d'être convertie par une application OCR qui accepte les images pnm. Dans cette commande, les commandes spécifiques au scanner sont –mode, –resolution et –source:

 scanimage --batch=document-A-%d.pnm --format=pnm --batch-count=1 --mode Lineart --resolution 1200 --source Automatic

Comme il s'agit de commandes de scanner et non de l'API SANE, elles seront différentes en fonction de la marque et du modèle, et peuvent nécessiter une certaine expérimentation. Par exemple, l'extrait de code suivant peut ne pas être évident à partir de la sortie d'aide du backend:

 --source Automatic

Scannez-le avec SANE

Que vous soyez une personne en possession d'une pile de vieux documents familiaux ou un conservateur professionnel, la numérisation avec l'API SANE est un choix évident pour des supports capables de résister aux rigueurs mécaniques des scanners et des ADF.

Combinez la capacité de l'API SANE avec le post-traitement des images ou une application OCR, et vous pouvez numériser presque tous les supports plats à préserver.