Clipper On Line • Ver Tópico - QR Code

QR Code

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

QR Code

Mensagempor Luciano Bonfim » 22 Mar 2009 19:06

Alguem conhece alguma DLL que eu possa usar, que crie uma imagem QR Code ?
QR Code é uma imagem em 2D similar ao código de barrasmas que comporta até set mil e poucos caracteres

Muito Obrigado
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar de usuário

Luciano Bonfim
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 414
Data de registro: 23 Ago 2007 09:34
Cidade/Estado: Rio de Janeiro / São Paulo
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: QR Code

Mensagempor sygecom » 26 Mar 2009 14:00

Pode gerar direto usando as API do Google,
Em anexo um exemplo com Hwgui + Api do Google
Anexos
iesample.prg
(2.02 KiB) Baixado 820 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7017
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 133 vezes

QR Code

Mensagempor Adalberto » 22 Nov 2014 23:45

Caro, Luciano, boa noite.

Se que foi há muitos anos atrás que você procurou solução para os códigos QR.

Eu me pergunto se você lograstes imprimir esses códigos a partir da sua aplicação, eu estou trabalhando com Ext MiniGUI, e eu estou necesitanto para gerar e imprimir códigos QR, do meu aplicativo.

Eu li em \ MiniGUI \ Samples \ Avançado \ HMG_Zebra mas não consegue encontrar donde inserir o texto (que eu preciso apenas ao texto, alfa numérico), por exemplo: 978 389 011 / Pneus 14 x 16, mountain / $ 89,20 / 2014/02/14

Por favor me ajude, espero sua resposta.

Muito obrigado !!

Adalberto
Adalberto
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 01 Set 2007 01:09
Cidade/Estado: Santa Cruz de la Sierra - Bolivia
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

QR Code

Mensagempor oxent_jabah » 24 Nov 2014 15:27

Caro Adalberto,

Na pasta "contrib" do harbour existe um projeto de nome "hbzebra" e neste tem vários testes com códigos de barras, inclusive com QRCODE. Veja se lhe atende.

Cecílio
Avatar de usuário

oxent_jabah
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 26 Dez 2008 10:29
Cidade/Estado: Juazeiro do Norte-Ce-Brasil
Curtiu: 0 vez
Mens.Curtidas: 1 vez

QR Code

Mensagempor Kapiaba » 24 Nov 2014 15:36

// Seria +- assim usando a dll QRCodelib.Dll

FUNCTION GERAR_QRCode()

   LOCAL cStr, cFile

   cStr:="conteúdo do_qrcode"

   cFile:="c:\arq.bmp"

   QRcode(cStr,cFile)

RETURN NIL

FUNCTION QRcode( cStr, cFile )

   #Define DC_CALL_STD  0x0020

   LOCAL qrDLL

   Generar_QR( cStr, cFile )

RETURN(NIL)

FUNC Generar_QR( cStr, cFile )

   LOCAL nResp
   LOCAL qrDLL

   qrDLL:=LoadLibrary("QRCodelib.Dll" )

   nResp:=DllCall(qrDLL,DC_CALL_STD,"FastQRCode",cStr,cFile)

   FreeLibrary(qrDLL)

RETURN NIL


abs
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

QR Code

Mensagempor Adalberto » 25 Nov 2014 07:47

Caros amigos, bom dia.
Muito obrigado por suas respostas, e obrigado pela vontade de cooperar.

Eu preciso criar o código QR, sem internet, parece que a solução proposta por kapiaba é adequada, mas preciso saber como dicer para a librería que trabalhe com o nível H para a capacidade de correção de erros.

Por favor, me judem com estos detalhes.

Cordiais saudações e minha oração por vóces desejando prosperidade.

[ ]Adalberto
Adalberto
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 01 Set 2007 01:09
Cidade/Estado: Santa Cruz de la Sierra - Bolivia
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

QR Code

Mensagempor Kapiaba » 25 Nov 2014 09:08

Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

QR Code

Mensagempor Kapiaba » 25 Nov 2014 09:16

Basei-se aqui: É em Fivewin, mas basta adaptar para seu uso.

#Include "FiveWin.ch"

* HBZEBRA.LIB

* *********************************************************
* PROCEDURE MAIN
* PRINT oPRN PREVIEW
* PAGE
* EanQRCode(oPRN,50,50,1,"www.veneziasoft.com")
* ENDPAGE
* ENDPRINT
* RETURN
* *********************************************************

* iFlags = estratto da QRCODE.C della libreria HBZEBRA.LIB
*
* #define HB_ZEBRA_FLAG_QR_LEVEL_MASK 0x0700
* #define HB_ZEBRA_FLAG_QR_LEVEL_L 0x0100
* #define HB_ZEBRA_FLAG_QR_LEVEL_M 0x0200
* #define HB_ZEBRA_FLAG_QR_LEVEL_Q 0x0300
* #define HB_ZEBRA_FLAG_QR_LEVEL_H 0x0400
*
* switch( iFlags & HB_ZEBRA_FLAG_QR_LEVEL_MASK )
* {
* case HB_ZEBRA_FLAG_QR_LEVEL_M:
* iLevel = 1;
* break;
* case HB_ZEBRA_FLAG_QR_LEVEL_Q:
* iLevel = 2;
* break;
* case HB_ZEBRA_FLAG_QR_LEVEL_H:
* iLevel = 3;
* break;
* default:
* iLevel = 0;
* break;
*

* *********************************************************
* EanQRCode(oPRN, nY, nX, nWidth, nQRCODE, nColor, iFlags)
*
* oPRN = Output Device
* nY = Rigo di inizio stampa
* nX = Colonna di inizio stampa
* nWidth = Spessore del QRCODE - default = 1
* nQRCODE = Stringa del QRCODE
* nColor = Colore del QRCODE - default = CLR_BLACK
* iFlags = Flags
*
* *********************************************************

******************************************************************
Function EanQRCode(oPRN, nY, nX, nWidth, nQRCODE, nColor, iFlags)

   Local hCODE,oBRUSH,nRET
   Local nCLR:=IIF(nColor<>NIL,nColor,CLR_BLACK)
   Local nLineWidth:=IIF(nWidth==NIL .OR. nWidth<1,1,nWidth)
   Local nLineHeight:=nLineWidth
   Local nSCALE:=7.2

   hCODE:=hb_zebra_create_qrcode(nQRCODE,iFlags)

   nY *= nSCALE
   nLineWidth *= nSCALE

   IF hCODE != NIL

      IF hb_zebra_geterror( hCODE ) == 0

         IF Empty( nLineHeight )
            nLineHeight := 16
         ENDIF

         IF hb_zebra_geterror( hCODE ) != 0
            RETURN HB_ZEBRA_ERROR_INVALIDZEBRA
         Endif

         DEFINE BRUSH oBRUSH COLOR nCLR

         nRET:=hb_zebra_draw( hCODE, {|x,y,w,h| oPRN:FillRect({Int(y+.5), Int(x+.5), Int(y+.5)+Int(h)+1, Int(x+.5)+Int(w)},oBRUSH) }, nX*nSCALE, nY, nLineWidth, nLineHeight*nSCALE )

         oBRUSH:End()

      Endif

      hb_zebra_destroy( hCODE )

   Endif

Return nRET


abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

QR Code

Mensagempor Adalberto » 04 Dez 2014 01:36

Kapiaba, boa noite.

Poderia me dicer qual e a function o comando para DllCall porque em essa linea da erro, noa reconoce esa function.

Aguardo sua ajuda.

Muito obrigado.

[ ] Adalberto
Adalberto
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 01 Set 2007 01:09
Cidade/Estado: Santa Cruz de la Sierra - Bolivia
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

QR Code

Mensagempor rochinha » 04 Dez 2014 03:20

Amiguinhos,

Poderia me dicer qual e a function o comando para DllCall porque em essa linea da erro, noa reconoce esa function.


Tenta la funcion CallDLL().
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

QR Code

Mensagempor Kapiaba » 04 Dez 2014 08:48

Buenas Adalberto, que usas para compilar tus desarrolos?

Mira este post, porfa:

http://www.pctoledo.com.br/forum/viewtopic.php?f=4&t=6009

Gracias, Saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

QR Code

Mensagempor Adalberto » 04 Dez 2014 13:31

Kapiaba, buenas tardes.

Muchas gracias por responder y por ayudarme.

Logré generar el código QR de la siguiente manera, y funciona bien.

#include 'minigui.ch'
DECLARE DLL_TYPE_HBITMAP FastQRCode (DLL_TYPE_LPCSTR file, DLL_TYPE_LPCSTR path) IN QrCodeLib.dll
//
[b]Function QrCodigo()[/b]
cTexto:= '3188075019|120.54|22/04/2014' // Cualquier texto
cFile:= "facturaqr.bmp" // Puede ser [U:][ruta]<Arquivo.Ext>
FastQRCode(cTexto, cFile)
RETURN NIL


Como puedes ver amigo kapiaba, estoy trabajando con MiniGuiExt Ver. 2.3.3

Imprimo con DosPrinter, pregunto: hay alguna otra menera de imprimir? tal vez con con los comandos propios del lenguaje?

Espero tu respuesta, un atento saludo desde Santa Cruz de la Sierra - Bolivia.

[ ] Adalberto
Adalberto
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 01 Set 2007 01:09
Cidade/Estado: Santa Cruz de la Sierra - Bolivia
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

QR Code

Mensagempor Kapiaba » 04 Dez 2014 13:38

Lástima no saber MiniGUI.

Yo sólo entiendo de FiveWin.

Esperemos que las personas que usan MiniGUI Puedan Ajudarte

Gracias, Saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

QR Code

Mensagempor rochinha » 04 Dez 2014 15:48

Amiguinho,

A classe DOSPrint e a classe tDOSPrn es Puramente texto, trabalhando em baixo nível. talvez devesse USAR outras classes com Modo gráfico.

Talvez devas USAR a classe win32prn, mas ela faz parte xHarbour e não sei se Funciona bem no Harbour.

Veja exemplos de uso da classe win32prn:

Primeiro

Segundo

Exemplo simples de uso da classe:
#define SALTO_PAGINA chr(12)

********************************
FUNCTION Imprime( cArq, tamrel ) // arquivo e tamanho da linha
********************************
   local cTexto, nLinhas, nA, cLinha, oPrinter := win32prn()

   oPrinter:New( GetDefaultPrinter() )
   oPrinter:Landscape := .F.
   oPrinter:FormType  := 9
   oPrinter:Copies    := 1

   if !oPrinter:Create()
      Alert("Não foi possível criar a impressão")
      return NIL
   endif
   if ! oPrinter:StartDoc("Impressao xharbour")
      Alert("StartDoc() - falhou ")
      return NIL
   endif
   oPrinter:SetDefaultFont()
   if tamrel > 80
      oPrinter:setfont(,,17,,,,255)
   else
      oPrinter:setfont(,,11,,,,255)
   endif

   oPrinter:TextOut( space(tamrel), .T. )
   cTexto  := memoread( cArq )
   nLinhas := mlcount( cTexto, tamrel, 1, .F. )
   for nA := 1 to nLinhas
      cLinha := memoline( cTexto, tamrel, nA, 1, .F. )
      if left( alltrim( cLinha ), 1 ) == SALTO_PAGINA
         oPrinter:NewPage()
      else
         oPrinter:TextOut( cLinha, .T. )
      endif
   next
   oPrinter:EndDoc()
   oPrinter:Destroy()
RETURN NIL
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

QR Code

Mensagempor Adalberto » 04 Dez 2014 16:50

Maestro rochinha, boa tarde.

Muchas gracias por la ayuda, en verdad no me expresé bien, estoy usando para imprimir el DosPrinter de Bojan Banko, tambien imprime gráficos, es muy bueno pero no deja de ser un software externo a nuestros sistemas, entonces pensé que puedo empezar a estudiar el uso de comandos internos.

Estudiaré los ejemplos que me has propuesto.

Ahora, tal vez puedas ayudarme o quizas tengo que abrir otro post:

Como se hace para saber todos los parametros que podemos pasarle a un archivo .DLL, por ejemplo como podría decirle a QRCodeLib.DLL que trabaje con el nivel H.
(Capacidad de corrección de errores).

Gracias!!!, continuaré en oración pidiendo prosperidad y salud para todos ustedes.

[ ] Adalberto
Adalberto
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 343
Data de registro: 01 Set 2007 01:09
Cidade/Estado: Santa Cruz de la Sierra - Bolivia
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro