Problema con Tscan32 de Rafa (Thefull).- Solucionado

Problema con Tscan32 de Rafa (Thefull).- Solucionado

Postby JoseLuis » Tue Nov 30, 2010 1:03 pm

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 oScan:end(), ya que si no pongo ésto, no sé como parar el multitranfer.

Codigo:

Code: Select all  Expand view

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)
    oScan := TScan32():New(cfile)
*    oscan:SelectFeeder(.t.)
*    oscan:SetAutoFedd(1)
    oScan:SetRes( 300 ) && 150dpi
*    oScan:PixelType( TWAIN_BW )
    oScan:PixelType( TWPT_RGB )
    oScan:SetHide( .T. )
    oscan: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:=oscan:Digitofile( cFile,oscan )
                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. oScan:BC_available()
        msgalert("
No esta registrada la aplicacion","Atencion")
    endif
    oScan: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  Expand view
METHOD DigiToFile( cFile,oscan )
  local cBarValue:=""
       if EMPTY( cFile )
          cFile := ::cFile
       endif

       IF !::lError
      ::hDib := ::Acquire()         // Importar
      if oScan:BC_Recognize(::hDib,1,-1)>0
            cBarValue:=oScan: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: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

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

Postby JoseLuis » Tue Dec 07, 2010 12:36 pm

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
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

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

Postby AIDA » Thu Dec 09, 2010 5:44 am

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ǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

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

Postby JoseLuis » Thu Dec 09, 2010 7:33 am

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  Expand view
   tw_SetMultiTransfer(1)


y en el bucle que se encarga de escanear continuamente:

Code: Select all  Expand view
  Do while tw_waitforImage(oscan)=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  Expand view
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
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

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

Postby AIDA » Thu Dec 16, 2010 6:17 am

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ǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

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

Postby Ladinilson » Mon Dec 16, 2019 3:21 pm

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
Ladinilson
 
Posts: 17
Joined: Wed Feb 04, 2009 9:38 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 79 guests