Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/05/2013, 12:30
cbr20
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 11 años
Puntos: 1
Respuesta: Como obtener una imagen directamente de un escaner

Holaaaaaa, buenaaaaaaaaas. Soy yo otra vez, el enrrea.

Tengo una buena noticia.

- Ya lo consegui (siiiiiiii)


Bueno, vamos al grano ¿ok?

Para poder capturar una imagen de un escaner usaremos la fantastica libreria eztwain (distribuida por Dosadi).

Al lio. Primero nos descargamos esta INPRESCINDIBLE herramienta llamada EZTWAIN.DLL (hay un monton de versiones, id probando, a lo largo de esta semana dare mas detalles de la version que yo estoy usando (gratis) etc) y la instalamos (quizas no haga falta instalarla, informaros de la version que os descargueis, y no os asusteis, NO ES COMPLICADO SI OS PONEIS A ELLO EN SERIO). Tras lo cual agregamos la clase de eztwain a nuestro proyecto (esta clase vendra en la descarga, y nos permitira acceder a los metodos de la dll) y nos ponemos a programar como locos. He aqui mi codigo con el cual consigo escanear de forma automatica:

(AVISO: este metodo es llamado desde un boton, que es la forma "aconsejable" de usar estos metodos. En mi caso el codigo lo uso para controlar escaneres de tipo 'flatbed', no tipo ADF(buscad en google que son cada uno) pero para ponerlo ADF es solo cambiar una sola linea, tranquilos. Si no os funciona contactad conmigo en mi corre o aqui en el foro (preferiblemente en el foro))



'------METHOD ESCANEARPRO------
Private Sub escanearPro(ByVal ruta1, ByVal ruta2, ByVal nombreArchivo, ByVal tamannoEscaneo)
'Al terminar el escaneo se generara un pdf, no un tif
Dim fileName As String 'nombre del archivo que generaremos
Dim N As Integer 'numero de escaneos seguidos que realizaremos, lo suyo es que sea 1, pero esto es a gusto del consumidor
N = 1
fileName = String.Format(rutaDondeSeGuardaraElArchivo + nombreArchivo + ".pdf", 1) 'ponemos la ruta, el nombre del archivo y el tipo de archivo (en este caso .pdf)
Call EZTwain.LogFile(1)
Call EZTwain.SetHideUI(1)
If EZTwain.OpenDefaultSource() Then
Call EZTwain.SelectFeeder(1) 'esta linea es la que define que es un escaner flatbed, para ponerlo ADF el 1 lo ponemos false (si no funciona ponganse en contacto conmigo)
Call EZTwain.SetPixelType(2) 'yo escaneo en color (provad con otros numeros para ver otros tipos de escaneo, como el blanco-negro)
Call EZTwain.SetBitDepth(1)
Call EZTwain.SetResolution(300) 'resolucion de la imagen
Call EZTwain.SetAutoScan(1) 'ESTA LINEA ES NUESTRA SALVADORA, ya que es la encargada de decirle al escaner que escanee y punto, sin mostrar ventanas adicionales ni nada, que escanee con los parametros que le hemos dado y ya esta

Call EZTwain.SetRegion(0, 0, 10.1, 10.1) 'area que decidimos escanear




EZTwain.AcquireToFilename(Me.Handle, fileName) 'esta linea realiza el escaneo y la creacion del documento
End If
If EZTwain.LastErrorCode() <> 0 Then
Call EZTwain.ReportLastError("Unable to scan.")
End If

End Sub





Pues eso es todo, por cualquier dudilla avisadme, y estare encantado de resolverlas (en la medida de lo posible, tened en cuenta que fui yo el que hizo la pregunta del foro).

De todos modos gracias por visitar este tema.

Nos vemos en el foro, adiooooooooooos