Cómo escanear documentos en Linux con los comandos más útiles de SANE
Scanner Access Now Easy (SANE) es una interfaz de programación de aplicaciones (API) que se utiliza para controlar escáneres y cámaras. En uso, la aplicación de línea de comandos, scanimage, se puede utilizar para enviar comandos de un escáner de manera rápida y confiable para realizar una serie de funciones útiles.
A continuación, le mostramos cómo aprovechar SANE al máximo para escanear documentos y fotos.
Consiga SANE ahora
La API se puede instalar usando su administrador de paquetes. Por ejemplo, en un sistema Debian:
sudo apt install sane
… instala la API SANE y proporciona la imagen de escaneo de la aplicación de línea de comandos. (También instala las herramientas frontales xscanimage, scanadf y xcam). Ejecutar el siguiente comando muestra todas las opciones disponibles:
scanimage -h
Ahora, es importante tener en cuenta que puede enviar comandos API junto con comandos específicos del escáner, todo en la misma línea de comandos. Además, la salida de -h puede ser un poco confusa debido al hecho de que tanto las opciones de la API como las opciones del escáner se imprimen en el terminal en un estilo concatenado.
Si no se detecta ningún escáner, solo obtendrá las opciones de API. Si se detecta un escáner, es posible que experimente un retraso de tiempo notable mientras se recupera la información del dispositivo del escáner, se envía a la API y se formatea. El comando parece detenerse, pero espere y terminará.
Habiendo mencionado eso, si solo desea las opciones del dispositivo (opciones de "backend" para el escáner en sí), puede usar la opción -A :
scanimage -A
Tenga en cuenta que para este artículo, SANE versión 1.0.14-15 se utiliza como ejemplo. Su versión particular puede variar y tener opciones algo diferentes. Si tiene preguntas, simplemente ejecute scanimage con la opción -h .
Por supuesto, cada escáner tendrá su propio conjunto específico de opciones posibles, así que experimente con ellas para refinar los comandos que envía para obtener los mejores resultados.
Comandos SANE sencillos y sencillos
Sí, fácil y sencillo es lo que todos queremos. Tienes que empezar en alguna parte, y el comando más simple que puedes usar para escanear algo es:
scanimage > scan_out
Esto funcionará si la API detecta su escáner. La salida se envía directamente a la salida estándar en este caso y luego se redirige al archivo, scan_out. El formato de imagen predeterminado es PNM y el modo predeterminado (por ejemplo, arte lineal, monocromo o color) lo determina el escáner. Si no se detecta el escáner, obtendrá este resultado (o similar):
scanimage: no SANE devices found
También recibirá un mensaje informativo sobre el formato de salida que no se está configurando. Esto se debe a que el formato de imagen predeterminado es pnm. Esto se puede cambiar a TIFF, PNG o JPEG.
Output format is not set, using pnm as a default.
Especificar el archivo de salida
La salida estándar se puede redirigir a un archivo usando > o puede emitir una opción explícita para especificar el nombre y la ruta completa del archivo de salida, por ejemplo:
scanimage -o scan_out.png
En este caso, la API generará una imagen en formato PNG.
Listado y uso de dispositivos
¿Quiere asegurarse de que SANE detecta su escáner? Ejecute este comando:
scanimage -L
Enumerará todos los dispositivos detectados. Si un solo dispositivo tiene una LAN conectada y una conexión USB, los enumerará en líneas separadas.
Por ejemplo, una Epson WorkForce WF-3640 podría aparecer así:
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
En este caso, puede utilizar como dirección para enviar y recibir datos:
scanimage -d epson2:net:192.168.1.26 -o scan_out.png
o
scanimage -d epson2:libusb:001:005 -o scan_out.png
Tenga en cuenta que si desconecta y vuelve a conectar el USB en un puerto diferente, la dirección USB cambiará. En ese caso, debe asegurarse de que la dirección de su dispositivo sea la misma que la nueva impresa cuando aparece nuevamente.
Establecer un formato de imagen diferente
Si desea un formato de imagen diferente, puede emitir el mismo comando como este:
scanimage -o scan_out.tiff
SANE intentará adivinar el formato basándose en la extensión del archivo. El formato también se puede establecer explícitamente con:
scanimage --format=tiff -o scan_out.tiff
o incluso esto:
scanimage --format=tiff > scan_out
Comandos por lotes
Bueno, ¿qué más puedes sacar de la API? Esto es lo que puede obtener: comandos por lotes para controlar un alimentador automático de documentos (ADF) para escanear páginas en secuencia.
Si bien el escáner puede producir solo formatos de imagen, estos también se pueden convertir en texto a través de una aplicación de reconocimiento óptico de caracteres (OCR), como gocr .
Tenga en cuenta que para producir un documento razonablemente detallado para la conservación de documentos o una conversión OCR, es posible que deba enviar comandos específicos del escáner. Estos se anotarán a continuación.
Un ejemplo de procesamiento por lotes
Querrá utilizar diferentes formatos según el propósito del resultado final. Por ejemplo, si la aplicación OCR que desea utilizar solo acepta imágenes PNM, el formato de archivo de su imagen debe ser PNM.
A continuación se muestra un ejemplo de envío de un comando para escanear una página de texto impreso para que una aplicación OCR que acepte imágenes pnm la convierta. En este comando, los comandos específicos del escáner son –mode, –resolution y –source:
scanimage --batch=document-A-%d.pnm --format=pnm --batch-count=1 --mode Lineart --resolution 1200 --source Automatic
Dado que estos son comandos de escáner y no la API SANE, serán diferentes según la marca y el modelo, y pueden requerir cierta experimentación. Por ejemplo, es posible que el siguiente fragmento de código no sea obvio en la salida de ayuda del backend:
--source Automatic
Escanearlo con SANE
Ya sea que sea una persona en posesión de una pila de documentos familiares antiguos o un conservacionista profesional, el escaneo con la API SANE es una opción obvia para los medios que pueden resistir los rigores mecánicos de los escáneres y ADF.
Combine la capacidad de la API SANE con el posprocesamiento de imágenes o una aplicación de OCR y podrá digitalizar casi cualquier medio plano que valga la pena conservar.