Problema con Tscan32 de Rafa (Thefull).- Solucionado

Post Reply
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Problema con Tscan32 de Rafa (Thefull).- Solucionado

Post by JoseLuis »

Buenos dias

Estoy peleándome con ésta magnífica libreria, junto con la eztwain en un scanner fujitsu fi-5120C (éste escanner no lleva tapa, lleva un feeder que carga automáticamente los documentos).

Mi problema es que cuando escanea el último documento, no sé que instrucción poner para que detecte ésto, que no nay más documentos que escanear, ya que tengo activado el multitransfer (tw_SetMultiTransfer(1)). He optado por la "CHAPUZA" de poner como último documento uno que tenga un código de barras que contenga la cadena "9999999", y en el código correspondientes le indico que si se encuentra ésta cadena, entonces _:end(), ya que si no pongo ésto, no sé como parar el multitranfer.

Codigo:

Code: Select all

Function escanea()
local cBarValue,hdib,nombre,hora,minu,segu,dia,camino,cFile,sigue
local nCntPage:=0, cVar,oIni,escaneo,errores,conta:=0,contae:=0
INI oIni FILE ".\GESPAQ.INI"
  GET escaneo     SECTION "JPG"       ENTRY "Ruta Imagenes provisio"    OF oIni DEFAULT curdrive()+":\"+curdir()
  GET errores     SECTION "JPG"       ENTRY "Ruta Imagenes entrada" OF oIni DEFAULT curdrive()+":\"+curdir()
ENDINI
    cFile:="provi"
    camino:=curdrive()+":\"+curdir()+"\"
    tw_SetMultiTransfer(1)
    _ := TScan32():New(cfile)
*    _:SelectFeeder(.t.)
*    _:SetAutoFedd(1)
    _:SetRes( 300 ) && 150dpi
*    _:PixelType( TWAIN_BW )
    _:PixelType( TWPT_RGB )
    _:SetHide( .T. )
    _:RegionSet(0,0,8.40,4)     
      Do while .t.
        dia :=alltrim(padr(str(year(date())),"0",4))+alltrim(padr(str(month(date())),"0",2))+alltrim(padr(str(day(date())),"0",2))
        hora:=SUBSTR(TIME(), 1, 2)
        minu:=SUBSTR(TIME(), 4, 2) 
        segu:=SUBSTR(TIME(), 7, 2) 
        cFile:=dia+hora+minu+segu+".jpg"
        nombre:=_:Digitofile( cFile,_ )
                do case
        case nombre<>"0" .and. nombre <>'9999999'
                   movefile(camino+cFile,escaneo+'0'+nombre+'.jpg' ) 
           conta+=1
        case nombre='0'
                   movefile(camino+cFile,errores+cFile ) 
           contae+=1
        case nombre='9999999'
                   delete file &nombre
        end case
        if Publicas:cFin=1
           exit
        endif
       enddo
*     TW_CloseSource()
    if .not. _:BC_available()
        msgalert("No esta registrada la aplicacion","Atencion")
    endif
    _:End()
  msginfo('Resumen del Escaneo'+chr(10)+chr(10)+'Albaranes con codigo de barras  '+alltrim(str(conta))+chr(10)+'Albaranes sin codigo de barras  '+alltrim(str(contae)),'HEMOS ACABADO')
    return (sigue)
Y este es el codigo de la clase que se encarga del escaneo

Code: Select all

METHOD DigiToFile( cFile,_ )
  local cBarValue:=""
       if EMPTY( cFile )
          cFile := ::cFile
       endif

       IF !::lError
      ::hDib := ::Acquire()         // Importar
      if _:BC_Recognize(::hDib,1,-1)>0
            cBarValue:=_:BC_Text(0)
            cBarValue:=alltrim(cBarValue)    
           else
        cBarValue:="0"
       endif
       ENDIF
       IF cBarValue='9999999'
          Publicas:cFin:=1
       endif
       IF ::hDib <> 0
          IF ::lBmp                      // Format bmp
             ::DibToBmp( cFile )       // Si no hacemos uso de BMP
          ELSE
             IF TW_IsJpg()              // Si puede hacer uso del JPG
                ::DibToJpeg( cFile )
             ELSE
                ::DibToBmp( cFile )       // Si no hacemos uso de BMP
             ENDIF
          ENDIF
       else
       Publicas:cFin:=1
       ENDIF
Return (cBarValue)
 
A ver si me ayuda alguien

Saludos
--------------------------
Saludos

Jose Luis
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Problema con Tscan32 de Rafa (Thefull).- Solucionado

Post by JoseLuis »

Pues eso, que está solucionado.

Para hacer lo que hyo quería, había que modificar la librería de Rafa.

Saludos
--------------------------
Saludos

Jose Luis
User avatar
AIDA
Posts: 782
Joined: Fri Jan 12, 2007 8:35 pm

Re: Problema con Tscan32 de Rafa (Thefull).- Solucionado

Post by AIDA »

Hola

y que le hiciste para que te funcionara si no es mucha molestia :mrgreen:

soy muy curiosa :oops: sorry

Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Problema con Tscan32 de Rafa (Thefull).- Solucionado

Post by JoseLuis »

molestia ninguna guapetona.

La alimentación de éste escaner es automática, y el problema está al colocar en la bandeja más de un documento.
hay que poner:

Code: Select all

    tw_SetMultiTransfer(1)
y en el bucle que se encarga de escanear continuamente:

Code: Select all

   Do while tw_waitforImage(_)=1
el problema era que ésta orden no la reconocía la librería.

Había que hacer ésto en la libreria de Rafa:

Code: Select all

 HB_FUNC( TW_WAITFORIMAGE )  // hWnd
 {
  hb_retni( TWAIN_WaitForImage( ( HWND ) hb_parnl( 1 ) ) );
 }
 
y ya éstá.

Esto lo que hace es comprobar que en el alimentador hay algún documento.

Saludos

Jose luis
--------------------------
Saludos

Jose Luis
User avatar
AIDA
Posts: 782
Joined: Fri Jan 12, 2007 8:35 pm

Re: Problema con Tscan32 de Rafa (Thefull).- Solucionado

Post by AIDA »

Que lindo muchas gracias veré si me queda tu consejo :mrgreen:

Muchos tenquius :D


Saluditos... :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
Ladinilson
Posts: 14
Joined: Wed Feb 04, 2009 9:38 pm

Re: Problema con Tscan32 de Rafa (Thefull).- Solucionado

Post by Ladinilson »

Bom dia José Luis

Estava precisando da rotina de scanner também que atribuísse ao nome do arquivo em BMP os números de um código de barras que está no documento a ser escaneado.

Por exemplo ele lê o código de barras do documento e nomeia o mesmo quando gravado 00034128.BMP

Esta rotina é possível?

Obrigado
Post Reply