Digitalizar documentos directamente desde un escaner (licencias medicas)

1,376 views
Skip to first unread message

Juan Pablo Carrasco M.

unread,
Aug 21, 2013, 11:17:47 AM8/21/13
to publice...@googlegroups.com
Estiamos del foro,

Una vez mas por aqui, solicitado la ayuda de los expertos. Bueno la pregunta es puntual:

¿Alguien tiene un algoritmo que capture una imagen directo desde el escaner?.

La idea es crear un formulario en donde yo pueda controlar:

1- Boton "Digitalizar", para iniciar la conexion al escaner y obtega un pre visualizado del documento
2- Boton "Guardar", en donde se pueda guardar el documento pre visualizado

Para esto tengo una tabla mySql con dos campos mediumblob en donde guardar las imagenes digitalizadas.

Muchas gracias por vuestra ayuda.

Ricardo Pina

unread,
Aug 21, 2013, 11:21:34 AM8/21/13
to Grupo VFP
Hola Juan Pablo
 
Revisa este hilo
 
 
Saludos
 
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Juan Pablo Carrasco M.

unread,
Aug 21, 2013, 12:01:37 PM8/21/13
to publice...@googlegroups.com
Hola Ricardo,

La verdad es que ya habia revisado la cita, pero como se habla de Windows 95 y de un Software pagado, el encanto despararecio.

¿Sabes de algo mas generalizado?, ¿algo como lo que menciones? ( Boton "Digitalizar", Botn "Guardar" )

Gracias




Ricardo Pina

unread,
Aug 21, 2013, 12:27:02 PM8/21/13
to Grupo VFP
Hola
 
Hay muchos activex free que puedes utilizar. y la mecánica de utilización es similar.
Yo, en mi caso particular utilizo uno de pago (Viscom Software) y le traslado el costo de la licencia al cliente.
 
Saludos
 
 
 

J. Enrique Ramos Menchaca

unread,
Aug 21, 2013, 12:37:48 PM8/21/13
to publice...@googlegroups.com
Yo he utilizado el EzTwain para realizar el escaneado de documentos, tengo ya la versión de pago, se que hay una versión gratuita, pero no recuerdo sus limitaciones, el link que te puede ayudar en eso es:

Actualmente el gratuito se llama EzTwainX y lo puedes encontrar en:

No sé cuantas páginas desees escanear a la vez, pero si son documentos de una sóa página o hoja suelta te puede funcionar sin problemas, escanea en varios formatos.

Juan Pablo Carrasco M.

unread,
Aug 22, 2013, 12:33:52 PM8/22/13
to publice...@googlegroups.com
¡Perfecto!

Use la libreria EzTwain y listo, escaneo y creo el archivo.

Ahora si la ultima duda acerca de la libreria:

¿ Alguien sabe como puedo escanear directo sin que aperezca la ventana EzTwain ?

Yo creo que es cosa de pasarle los parametros dentro del algoritmo, pero no se cuales ni como inicializarlos.

Muchas gracias.

Víctor Hugo Espínola Domínguez

unread,
Aug 22, 2013, 12:45:19 PM8/22/13
to publicesvfoxpro
Hola Juan Pablo

Puede que este artículo te sirva: http://www.ml-consult.co.uk/foxst-29.htm

Saludos,
Víctor.

Juan Pablo Carrasco M.

unread,
Aug 22, 2013, 3:14:38 PM8/22/13
to publice...@googlegroups.com
Hola Victor Hugo,

La verdad bastaste interesante la informacion entregada, pero no logro eliminar la Ventana de control, que para mi caso, se llama HP Ez Twain.

¿ Usted a logrado desabilitar esta ventana ?
¿ Usted sabe en que objeto puedo insertar mi imagen de forma de recorrerla con las barras de ubicacion a la derecha y abajo ?

Gracias.

Juan Pablo Carrasco M.

unread,
Aug 22, 2013, 3:37:40 PM8/22/13
to publice...@googlegroups.com


  Ah y lo otro, mi imagen queda fija a un tamaño casi ilegible, y por ello creo lo mas conveniente dejarlo dentro de un objeto que posea Barra de desplazamiento, cosa de poder recorrerla usanlo el roll o desplazandome con la flecha del mouse.

   Gracias

Douglas Sánchez

unread,
Aug 22, 2013, 6:39:53 PM8/22/13
to publice...@googlegroups.com
Yo uso ese mismo control y este codigo no me manda nada de eso.
lo borro y lo creo para no estar creando archivos aleatorio y llenando el disco.

DELETE FILE C:\temp\marca.bmp
Store '"C:\temp\marca.bmp"' To File
Declare Integer TWAIN_SelectImageSource ;
    IN Eztw32.Dll Integer HWnd
Declare Integer TWAIN_GetSourceList ;
    IN Eztw32.Dll
Declare Integer TWAIN_GetNextSourceName ;
    IN Eztw32.Dll String @cSourceName
Declare Integer TWAIN_OpenSource ;
    IN Eztw32.Dll String cSourceName
Declare Integer TWAIN_AcquireNative ;
    IN Eztw32.Dll Integer nAppWind, Integer nPixelTypes
Declare Integer TWAIN_WriteNativeToFilename ;
    IN Eztw32.Dll Integer nDIB, String cFilename
Declare Integer TWAIN_FreeNative ;
    IN Eztw32.Dll Integer nDIB
Declare Integer TWAIN_SetMultiTransfer ;
    IN Eztw32.Dll Integer nFlag
Declare Integer TWAIN_AcquireToFilename ;
    IN eztw32.Dll Integer sFile
Declare Integer TWAIN_SelectImageSource;
    IN eztw32.Dll Integer sSeImaSo
sSeImaSo= TWAIN_SelectImageSource(0)
If sSeImaSo=0
    Wait Window Nowait 'No hay ningún Dispositivo Twain Seleccionado o no esta Instalado....'
    Return
Endif
pcFile = &File
* Captura la imágen
lnImageHandle = TWAIN_AcquireNative(0,0)
* copia la imagen a un archivo
lnReply = TWAIN_WriteNativeToFilename(lnImageHandle,pcFile)
* Libera la memoria del manejador de la imágen
TWAIN_FreeNative(lnImageHandle)
* Chequear errores
If lnReply = 0
* imagen fue exitosamente grabada
Else
    Wait Window 'Dispositivo Twain falló o no está Instalado!!' Nowait At 10,70
Endif
QWERTY=0

Salues

Douglas


El 22 de agosto de 2013 13:27, Juan Pablo Carrasco M. <jpcarr...@hotmail.com> escribió:

Bueno, la idea es pasarle diectamente los parametros de:

- Tamaño de hoja
- Cantidad de copias
- Confirmar

Y al finalizar:

- Echo

De forma que esta ventana no interfira en nada con el trabajo del usuario



--
Ing. Douglas Sánchez Guillén
      Consultor Informatico
Claro: 505 88495476

Juan Pablo Carrasco M.

unread,
Aug 23, 2013, 11:21:08 AM8/23/13
to publice...@googlegroups.com
Estimados,

Gracias por los algoritmos, consejos y links, creo que mi sueño por cargar una imagen directo a un objeto de mi formulario, tendra que esperar, por ahora necesariamente tendre que desplegar el gestor, para mi caso; HP Twain.

Lo unico que no me quedo claro, es saber si existe la posibilidad de insertar la imagen dentro de otro objeto, como un cuadro de edicion o un spinner, en donde pueda recorrer la imagen ayudado de la barra de desplazamiento.

Gracias.

Juan Pablo Carrasco M.

unread,
Aug 26, 2013, 12:18:41 PM8/26/13
to publice...@googlegroups.com
Aún complicado,

Por lo visto me quedo bastante claro que:

- TWAIN, es el gestor supervisor y al parecer no trabaja con parametros de ejecucion silenciosa.
- No existe un objeto VFP9 capaz de contener un archivo de imagen, el cual yo pueda recorrer usando las barras de desplazamiento.

Ahora si que es lo ultimo;

Necesto cargar la imagen en una base de datos MySQL usando VFP9.

_cAnv=FILETOSTR('c:\'+ALLTRIM(_docanverso))
_cRev=FILETOSTR('c:\'+ALLTRIM(_docreverso))

ENLACE=SQLSTRINGCONNECT(CONECCION)
= SQLPREPARE(ENLACE,'INSERT INTO Archivo  ( usuario, codigo, anverso, reverso )'+;
                                        'VALUES ( ?operador.nombre, ?operador.codigo, ?_cAnv, ?_cRev )')
= SQLEXEC(ENLACE)

Lamentablemente no graba los documentos.

Al revisar = AERROR(aErrorArray), me informa el siguiente error:

Error de conectividad: [MySQL][ODBC 5.1 Driver][mysqld-5.5.17]Got a packet bigger than 'max_allowed_packet' bytes"

Esto habla de la capacidad de cargar archivos en campos MySQL grandes.

¿ Alguien se a topado con algo así ?
¿ Como podria solucionarlo usando solo comandos VFP9 ?

Gracias.

Daniel Sánchez

unread,
Aug 27, 2013, 8:54:05 AM8/27/13
to Comunidad de Visual Foxpro en Español

Si se puede hacer la visualización de la imagen con las barras de desplazamiento, el único detalle es que el objeto imagen debes trabajarlo solo en un form y activar las barras de desplazamiento de tu form así si la imagen es grande y no cabe en el form se activaran las barras, en mi caso cree una clase en base al objeto imagen y le adicione código para que al presionar el clic derecho obtengo un menú que me permite dos opciones imprimir la imagen y bajarlo a un archivo

Saludos

Douglas Sánchez

unread,
Aug 27, 2013, 10:11:04 AM8/27/13
to publice...@googlegroups.com
Hola antes de enviar tu conexion tenes algo asi:

SYS(987,.T.)   &&&&& esto me recomendaron para ese caso
SET VARCHARMAPPING OFF   
CURSORSETPROP("MapVarChar", .F., 0)   
CURSORSETPROP("MapBinary",  .T., 0)

claro si la imagen es demasiado grande podes hacer esto al cargarla en tu formulario

    = Strtofile(tmpparam.imagen1,'c:\temp\'+mifondo)
    = Strtofile(tmpparam.imagen1,'c:\temp\'+mifondo,.T.)
    Thisform.foto1.Picture = 'c:\temp\'+mifondo

 
Saludes

Douglas

Juan Pablo Carrasco M.

unread,
Aug 28, 2013, 6:19:00 PM8/28/13
to publice...@googlegroups.com
Estimados,

Toda la razón, aunque me quedo dando vueltas el comentario de Daniel acerca de la clase que creo para, mas o menos, manipular la imagen, quizas seria un excelente aporte para nuestra comunidad el compartir su algoritmo.

Muchas gracias

J. Enrique Ramos Menchaca

unread,
Aug 28, 2013, 11:23:40 PM8/28/13
to publice...@googlegroups.com
Podrías utilizar el siguiente activex, es de pago, pero no es caro, existe una versión de prueba y tiene ejemplos con VFP, yo lo utilizo:


Saludos.

Juan Pablo Carrasco M.

unread,
Aug 22, 2013, 3:27:15 PM8/22/13
to publice...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages