Aquí os dejo un scriptillo muy resultón para escanear documentos de una o varías páginas y guardar el resultado directamente en PDF.

Ingredientes

  • python-imaging-sane
  • pdfjam

pysane

El script toma como único parámetro el nombre del fichero PDF resultante y se pone a escanear la primera página inmediatamente al arrancar. Después pregunta por consola si hay que escanear más páginas. Por último monta un PDF con todas las páginas escaneadas.

[ pysane.py ]

#! /usr/bin/python
# -*- coding:utf-8 -*-

import sys, os, time
import sane

output = sys.argv[1] if len(sys.argv) > 1 else 'output.pdf'
dirname = '/tmp/%s-%s' % (time.time(), os.getpid())
os.mkdir(dirname)

sane.init()
print 'Available devices:', sane.get_devices()

s = sane.open(sane.get_devices()[0][0])
s.mode = 'color'
s.resolution = 150

print 'Device parameters:', s.get_parameters()

files = []
for i, img in enumerate(s.multi_scan()):
    fname = os.path.join(dirname, 'img%s.pdf' % i)
    files.append(fname)

    print "Saving on '%s'" % fname
    img.save(fname)

    if raw_input('Another page? (Y/n): ').lower().startswith('n'):
        break

s.close()

print "scanned pages: %s" % (i+1)

if len(files)  == 1:
    os.system("mv '%s' '%s'" % (fname, output))
else:
    os.system("pdfjoin --fitpaper true --outfile %s %s" % (output, str.join(' ', files)))

Si alguien le tiene alergia a la consola y quiere hacerle una interfaz gráfica debería ser ultrasencillo.

Saludos.



blog comments powered by Disqus