Visual Basic - Scaneo de imagenes

Life is soft - evento anual de software empresarial
 
Vista:

Scaneo de imagenes

Publicado por Andres (2 intervenciones) el 20/07/2006 21:48:57
Buenas tardes, si alguien podria ayudarme estaria muy agradecido.
Dentro de una aplicacion ya existente estoy integrando un modulo de escaneo de imagenes. El escanner que dispongo es un kodak i40 y estoy utlizando los controles imgscan.ocx para ejecutar el escaneo. Tengo un conjunto de registros para los cuales le corresponde una imagen diferente. Como el scaner permite cargar la bandeja y comenzar a escanear un monton de facturas, las ordeno en el orden que me indica la aplicacion y comienzo a escanear, el problema que tengo es que siempre me escanea mas de 1 hoja por registro, ya que devuelve el foco a la aplicacion despues que pasaron las hojas.

private sub CmdMultipleSCAN_Click()
'Inicializa las propiedades del scanner
With oScanner
If .ScannerAvailable Then
.OpenScanner
.ScanTo = FileOnly
.MultiPage = False
.FileType = JPG_File
.ShowSetupBeforeScan = False
.PageOption = CreateNewFile
.SetPageTypeCompressionOpts SmallestFile, TrueColor24bitRGB, JPEGCompression, JPEGLowLow
Else
MsgBox "Es scanner no se encuentra disponible", vbInformation, "Digitalizacion de imagenes"
Exit sub
End If

'Comienza a escanear
Do While Not oRSTemp.EOF
'Determina el tipo de archivo
If oScanner.ScannerAvailable Then
sExtencion = ".jpg"
oScanner.FileType = JPG_File
oScanner.MultiPage = False
If oRSTemp!NRO_HOJAS > 1 Then
sExtencion = ".tif"
oScanner.FileType = TIFF
oScanner.MultiPage = True
End If

'Crea todo el path del archivo con la imagen digitalizada
sPathArchivo = "C:\" & ObtenerNumeroDeImagen & sExtencion
oScanner.Image = sPathArchivo

oScanner.StartScan

If oScanner.StatusCode = 0 Then
oRSTemp!Imagen = sPathArchivo
Else
MsgBox "Ocurrio un error durante la digitalizacion de la factura.", vbCritical, "Digitalizacion de Imagenes"
Exit Do
End If
Else
MsgBox "El scanner no se encuentra disponible", vbCritical, "Digitalizacion de Imagenes"
Exit Do
End If
oRSTemp.MoveNext
Loop
End Sub

'En el evento del scanner controlo si la cantidad de hojas es la esperada.
Private Sub oScanner_PageDone(ByVal PageNumber As Long)
If oRS!NRO_HOJAS = PageNumber Then
oScanner.StopScan
End If
End Sub

SI alguien me puede dar una pista, o algo o alguna mejor forma de hacer esto.......
Muchas gracias!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder