Jump to content
Fivewin Brasil

Scanear Documentos


Ladinilson

Recommended Posts

Bom dia meu caros,

Estou implementando uma rotina para meu software de sorteios (bingos) onde o mesmo terá que escanear os canhotos das cartelas vendidas e automaticamente, validar os mesmos com a leitura do código de barras neles...

#include "FiveWin.ch"

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. //tw_waitforImage(oscan)=1  
        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)

Esse código utiliza a TSCan32 junto com a EzTawin mas tem um problema que não há mais detalhes no tópico....

http://forums.fivetechsupport.com/viewtopic.php?f=6&t=20406&p=108205&hilit=scanner#p108205

E nem o autor respondeu mais.

Alguém tem algo parecido ou que pode me direcionar a algo parecido.

Obrigado

Ladinilson Sousa

FWH / xHarbour / Pelles / DBFCDX / MySQL

 

Link to comment
Share on other sites

  • 4 weeks later...
 

Qual o problema que vc está encontrando??

 

Olá Everton 

Desculpe a demora pois consegui implementar a rotina para escanear mas agora tenho uma coisa que não encontrei em nenhum lugar usando TWAIN.

Ele inseriu na TSCAN.PRG no metodo DIGITOFILE uma função para identificar se tem código de barras dentro da imagem escaneada...

***********************************************************
* Digitaliza hacia un fichero .jpg
***********************************************************
METHOD DigiToFile( cFile,oscan )
  local cBarValue:=""                               
       if EMPTY( cFile )
          cFile := ::cFile
       endif

       IF !::lError
      ::hDib := ::Acquire()         // Importar
      
      // ------------   AQUI PARA RECONHECER SE TEM CODIGO DE BARRAS
      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)

E além de reconhecer,  ele capta e dar a imagem o código de barras (números) ao arquivo digitalizado.

Não achei nada usando a TSCAN (Rafael Carmona) e também o dono da postagem não conseguir falar (sabe se ainda esta vivo!) pois dentro da TSCAN e do EZTAWIN.h não tem estas.

Não sei se ele usou uma versão nova da .DLL ou desenvolveu pois precisava para usar no meu programa para bingos.

se alguém usa e tem as LIB, DLL, H e um exemplo me ajudem ai.

Obrigado

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...