Eztwain

938 views
Skip to first unread message

andysoft

unread,
Jul 21, 2011, 8:33:54 AM7/21/11
to Comunidad de Visual Foxpro en Español
Podrias aclarar cual es tu problema con ese control.
Lo he utilizado en una aplicacion para digitalizar documentos con un
scanner y para realizar un control de ingreso con una camara web.
Cualquier duda pregunta

Cesar J PaEs

unread,
Jul 21, 2011, 9:05:23 AM7/21/11
to publice...@googlegroups.com
como scaneo directo sin que salga la pantalla del Driver del software del scaner y el otro es posible poner dos escaner en diferentes puertos USB
Grs.
Cesar.
 
> Date: Thu, 21 Jul 2011 05:33:54 -0700
> Subject: [vfp] Eztwain
> From: andresc...@gmail.com
> To: publice...@googlegroups.com

Cesar J PaEs

unread,
Jul 21, 2011, 9:21:23 AM7/21/11
to publice...@googlegroups.com
ahi les envio unos codigos que lo descargue de la comunidad, el DLL, Funciona muy bien.
espero te sirva.
 
en el evento Click pon esto
 
lcfile='C:\ARCHIVO
.BMP'
DECLARE INTEGER TWAIN_SelectImageSource IN 'C:\Eztw32.DLL' INTEGER hWnd
DECLARE INTEGER
TWAIN_GetSourceList IN 'C:\Eztw32.DLL'
DECLARE INTEGER TWAIN_GetNextSourceName IN 'C:\Eztw32.DLL' STRING @cSourceName
DECLARE INTEGER TWAIN_OpenSource IN 'C:\Eztw32.DLL' STRING cSourceName
DECLARE INTEGER TWAIN_AcquireNative IN 'C:\Eztw32.DLL' INTEGER nAppWind, INTEGER nPixelTypes
DECLARE INTEGER TWAIN_WriteNativeToFilename IN 'C:\Eztw32.DLL' INTEGER nDIB, STRING cFilename
DECLARE INTEGER TWAIN_FreeNative IN 'C:\Eztw32.DLL' INTEGER nDIB
DECLARE INTEGER TWAIN_SetMultiTransfer IN 'C:\Eztw32.DLL' INTEGER nFlag
LOCAL lnImageHandle, lnReply
 
* Captura la imágen
lnImageHandle = TWAIN_AcquireNative(0,0)
* copia la imagen a un archivo
lnReply = TWAIN_WriteNativeToFilename(lnImageHandle,lcFile)
* Libera la memoria del manejador de la imágen
TWAIN_FreeNative(lnImageHandle)
* Chequear errores
IF lnReply = 0
        WAIT WINDOW '* Se Scaneó en forma Exitosa *' nowait
ELSE
        WAIT WINDOW
' * NO se Scaneó CORRECTAMENTE, Verifique su Scaner * ' nowait
ENDIF
RETURN 

From: libra...@hotmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] Eztwain
Date: Thu, 21 Jul 2011 13:05:23 +0000
EZTW32.DLL

Hernan Padilla

unread,
Jul 21, 2011, 2:50:34 PM7/21/11
to publice...@googlegroups.com

cesar. gracias por el código
tengo una pregunta: con esta librería, como se haría para escanear varios documentos en un mismo archivo .tif ?
gracias..

Hernan

J. Enrique Ramos Menchaca

unread,
Jul 22, 2011, 1:46:36 PM7/22/11
to Comunidad de Visual Foxpro en Español
Para seleccionar el escaner es:

* Display TWAIN Select Source dialog
TWAIN_SelectImageSource(0)

Para obtener la lista de dispositivos Twain instalados:

Local Name As String
IF TWAIN_GetSourceList()<>0
Name = REPLICATE(CHR(0),64)
DO WHILE TWAIN_GetNextSourceName(@Name)<>0
Name = LEFT(Name,AT(CHR(0),Name)-1)
MESSAGEBOX(Name)
Name = REPLICATE(CHR(0),64)
ENDDO
ELSE
MESSAGEBOX("No TWAIN devices found.")
ENDIF

Para agrupar varios documentos en un solo archivo:

Local pagefile As String
Local i As Int
Local hdib As HANDLE
IF TWAIN_BeginMultipageFile("multipage.pdf")=0
FOR i = 1 TO N
pagefile = String.Format("page{0}.tif", i)
hdib = TWAIN_LoadNativeFromFilename(pagefile)
IF hdib<>0
TWAIN_DibWritePage(hdib)
DIB_Free(hdib)
ENDIF
IF TWAIN_LastErrorCode()<>0
EXIT
ENDIF
ENDFOR
TWAIN_EndMultipageFile()
ENDIF
IF TWAIN_LastErrorCode()<>0
TWAIN_ReportLastError("Unable to combine files.")
ENDIF

Para obtener un solo archivo de las paginas escaneadas del ADF:

Local hdib As HANDLE
TWAIN_SetHideUI(1)
TWAIN_SetFileAppendFlag(1)
IF TWAIN_OpenDefaultSource()<>0
TWAIN_SetXferMech(2)
TWAIN_SelectFeeder(1)
* Not guaranteed to work, check return = 1:
TWAIN_SetPixelType(1)
* Not guaranteed to work, check return = 1:
TWAIN_SetBitDepth(16)
TWAIN_SetResolution(300)
TWAIN_SetAutoDeskew(1)
TWAIN_SetPaperSize(4)
TWAIN_SetXferCount(-1)
TWAIN_SetAutoScan(1)
TWAIN_SetMultiTransfer(1)
TWAIN_BeginMultipageFile("c:\scanning\imagen.tif")
DO WHILE .T.
* If you can't use ThisForm.hWnd, pass 0:
hdib = TWAIN_Acquire(ThisForm.hWnd)
IF hdib=0
EXIT
ENDIF
* <your image processing here>
TWAIN_DibWritePage(hdib)
DIB_Free(hdib)
IF TWAIN_State()<6 THEN
EXIT
ENDIF
ENDDO
TWAIN_CloseSource()
TWAIN_EndMultipageFile()
ENDIF
IF TWAIN_LastErrorCode()<>0
TWAIN_ReportLastError("Unable to scan.")
ENDIF

En un escaner de cama plana:

Local i As Int
Local hdib As HANDLE
Local N As Int
* Change this to your value:
N = 2
TWAIN_SetHideUI(1)
TWAIN_SetFileAppendFlag(1)
IF TWAIN_OpenDefaultSource()<>0
TWAIN_SetXferMech(2)
* Not guaranteed to work, check return = 1:
TWAIN_SetPixelType(1)
* Not guaranteed to work, check return = 1:
TWAIN_SetBitDepth(16)
TWAIN_SetResolution(300)
TWAIN_SetAutoDeskew(1)
TWAIN_SetPaperSize(4)
TWAIN_SetXferCount(N)
TWAIN_SetMultiTransfer(1)
IF TWAIN_BeginMultipageFile("c:\scanning\imagen.tif")=0
FOR i = 1 TO N
* If you can't use ThisForm.hWnd, pass 0:
hdib = TWAIN_Acquire(ThisForm.hWnd)
IF hdib=0
EXIT
ENDIF
* <your image processing here>
TWAIN_DibWritePage(hdib)
DIB_Free(hdib)
ENDFOR
TWAIN_EndMultipageFile()
ENDIF
TWAIN_CloseSource()
ENDIF
IF TWAIN_LastErrorCode()<>0
TWAIN_ReportLastError("Unable to scan.")
ENDIF

El código antes proporcionado fue generado con el EZTwain Code Wizard.

No seria justo que me lo atribuyera yo.

Hernan Padilla

unread,
Jul 22, 2011, 7:57:02 PM7/22/11
to publice...@googlegroups.com
muchas gracias

Eric Natareno Guerra

unread,
Jul 23, 2011, 11:03:58 AM7/23/11
to publice...@googlegroups.com
Amigos, alguien ya probó esta libreria en windows 7. Quisiera saber si funciona

2011/7/22 Hernan Padilla <hern...@gmail.com>
muchas gracias

J. Enrique Ramos Menchaca

unread,
Jul 23, 2011, 1:35:12 PM7/23/11
to Comunidad de Visual Foxpro en Español
Yo la tengo instalada en Windows XP, Windows Vista 32/64 y Windows 7
64 que es donde desarrollo. No debes tener problema en utilizarla, en
el unico que tendria mis dudas es en las versiones starter.

On 23 jul, 10:03, Eric Natareno Guerra <tqanyou...@gmail.com> wrote:
> Amigos, alguien ya probó esta libreria en windows 7. Quisiera saber si
> funciona
>
> 2011/7/22 Hernan Padilla <hernan...@gmail.com>
>
>
>
>
>
>
>
> > muchas gracias
Reply all
Reply to author
Forward
0 new messages