scanimage > fichero
unpaper fichero fichero.pbm
convert fichero.pbm fichero.pdf
Se observará que en la primera instrucción hemos omitido la extensión del tipo de fichero (
pbm
) por mera cuestión de conveniencia. Como sabemos que el fichero es un pbm
y, puesto que unpaper
producirá también un pbm
, evitamos algo más prolijo como:
scanimage > fichero-version-inicial.pbm
unpaper fichero-version-inicial.pmb fichero-version-retocada.pbm
...
Este esquema se puede enriquecer con opciones adecuadas para cada una de las instrucciones que lo componen:
scanimage --resolution 600dpi --mode Lineart --progress > fichero
unpaper --size a4 fichero fichero.pbm
convert -compress Group4 fichero.pbm fichero.pdf
Las opciones de
scanimage
tienen el siguiente significado:--resolution 600dpi
- Define la resolución que tendrá la imagen resultante. En nuestro caso 600 puntos por pulgada, una resolución bastante alta. Resoluciones inferiores como 300dpi suelen ser suficientes y tienen la ventaja de acelerar la duración del proceso físico del escaneo.
--mode Lineart
- Determina la sensibilidad del escáner a las diferencias de matiz o color. En este caso interesa considerar sólo las diferencias entre blancos y negros (modo Lineart), la opción común en páginas de libros convencionales.
--progress
- Presenta en la consola o terminal una barra visual del progreso del proceso físico del escaneo.
Por su parte, la opción de
unpaper
es comprensible de suyo:--size a4
- Retoca el fichero dado como primer argumento para que se adapte a las dimensiones de un tamaño a4.
unpaper
es un programa sofisticado con un buen número de opciones, aquí nos limitamos a un uso muy básico.
Finalmente, en cuanto a
convert
tenemos la siguiente opción:-compress Group4
- Determina el algoritmo de compresión que se aplicará en la conversión. Con este algoritmo conseguimos, por ejemplo, que el pdf de una página de nuestro libro ronde los 100k sin apenas pérdida de calidad. Dicho sea de paso, Imagemagick, que es la herramienta general a la que pertenece
convert
, es una utilidad tremendamente especializada y eficaz en el tratamiento de imágenes. [Más información en http://www.imagemagick.org].
Definida la sucesión de instrucciones que constituye el proceso completo de transformación de la página del libro en un fichero pdf, queda construir un guión que pueda aplicarse a cualquier página en general. No es algo distinto de lo que ya hemos hecho en otras ocasiones (ver, en particular, este artículo).
Por tanto, se trata de añadir lo que sea necesario para poder pedirle a HAL algo como esto:
./escanear-a-pdf Dowland_The-Frog-Galliard_1
donde
Dowland_The-Forg-Galliard-1
es el nombre del fichero (sin la extensión .pdf
) que alojará el pdf de la hoja del libro correspondiente a la primera página de la pieza de Dowland titulada The Frog Galliard, y donde, por descontado, escanear-a-pdf
es el nombre de la instrucción o guión que vamos a diseñar.El artículo citado antes nos da la pista necesaria para que sea cosa de niños la generalización que deseamos. Basta, como se ve, con sustituir la variable escrita anteriormente con el nombre
fichero
por un parámetro posicional:
scanimage --resolution 600dpi --mode Lineart --progress > "$1"
unpaper --size a4 "$1" "$1".pbm
convert -compress Group4 "$1".pbm "$1".pdf
(Las comillas que rodean al parámetro posicional ---se recordará--- sirven para evitar problemas cuando el nombre de fichero elegido contiene espacios.)
Podemos, ya que estamos, incluir al final una instrucción de limpieza que elimine los ficheros intermedios:
scanimage --resolution 600dpi --mode Lineart --progress > "$1"
unpaper --size a4 "$1" "$1".pbm
convert -compress Group4 "$1".pbm "$1".pdf
rm "$1" "$1".pbm
Con todo ello estamos en condiciones de producir los pdfs deseados de cuantas páginas del libro vayamos a escanear, por ejemplo:
./escanear-a-pdf Dowland_The-Frog-Galliard-1
./escanear-a-pdf Dowland_The-Frog-Galliard-2
./escanear-a-pdf Dowland_The-Rrog-Galliard-3
./escanear-a-pdf Dowland_Fantasía-1
...
Como decíamos, cosa de niños.
Buenos días.
ResponderEliminar¿Dónde podría encontrar un manual de "unpaper"?
Lo estoy utilizando y me da errores.
Un saludo y gracias
La información sobre las opciones de unpaper viene, como es costumbre en las aplicaciones de consola, en forma de página de manual (manpage):
ResponderEliminarman unpaper
Al menos, en sistemas basados en Debian, existe también información añadida que puede consultarse en el directorio /usr/share/doc/unpaper/doc/, a la que se puede acceder mediante cualquier navegador como w3m:
w3m /usr/share/doc/unpaper/doc/index.html