Clipper On Line • Ver Tópico - SOLUCAO: Geração de QRCode

SOLUCAO: Geração de QRCode

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

SOLUCAO: Geração de QRCode

Mensagempor rochinha » 07 Dez 2014 15:10

Amiguinhos,

Depois de queimar pestanas eis aqui a minha solução:
//
// SDK para QRCode
// Proposito: Gerar código modelo QR para uso em aplicativos diversos
// Necessário: QRCodeLib.dll
// Linguagem: Foi utilizada Harbour, mas pode ser portada a qualquer outra.
// Data: 7 de Dezembro de 2014
// Autor: Jose Carlos da Rocha - Rochinha
//
#define ForFivewin

#IFDEF ForFivewin
       #include "fivewin.ch"
#ENDIF

// Niveis de Correcao(correctionLevel)
#define LEVEL_L 0 // 7%
#define LEVEL_M 1 // 15%
#define LEVEL_Q 2 // 25%
#define LEVEL_H 3 // 30%

// Nivel de codificacao(encoding)
#define ENC_ALPHA 0 // encodes alphanumeric characters (digits 0 - 9; upper case letters A -Z; nine other characters: space, $ % * + - . / : ); )
#define ENC_BYTE 1    // encodes binary values ( 8-bit data)
#define ENC_NUMERIC 2 // encodes numeric values only (digits 0-9)
#define ENC_KANJI 3   // encodes Kanji characters. Kanji characters in QR Code can have values 8140 -9FFC and E040 - EBBF
#define ENC_AUTO 4    // automatic seleccion of the encoding algorithm

#IFDEF ForFivewin
       //----------------------------------------------------------------------------//
       // Copyright FiveTech 1993-2011
       #ifndef _C_TYPES
          #define _C_TYPES
          #define VOID     0
          #define BYTE     1
          #define CHAR     2
          #define WORD     3
          #define _INT     7
          #define BOOL     5
          #define BOOLEAN  5
          #define HDC      6
          #define LONG     7
          #define STRING   8
          #define LPSTR    9
          #define PTR     10
          #define _DOUBLE 11         // conflicts with BORDER DOUBLE
          #define DWORD   12
       #endif
       #translate NOREF([@]<x>) => <x>
       #xcommand DLL32 [<static:STATIC>] FUNCTION <FuncName>( [ <uParam1> AS <type1> ] ;
                                                      [, <uParamN> AS <typeN> ] ) ;
             AS <return> [<pascal:PASCAL>] [ FROM <SymName> ] LIB <*DllName*> ;
       => ;
          [<static>] function <FuncName>( [NOREF(<uParam1>)] [,NOREF(<uParamN>)] ) ;;
             local _hDLL := If( ValType( <DllName> ) == "N", <DllName>, LoadLib32( <(DllName)> ) ) ;;
             local uResult ;;
             local cFarProc ;;
             if Abs( _hDLL ) <= 32 ;;
                MsgAlert( "Error code: " + LTrim( Str( _hDLL ) ) + " loading " + <DllName> ) ;;
             else ;;
                cFarProc = GetProc32( _hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = FWCallDLL32( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                If( ValType( <DllName> ) == "N",, FreeLib32( _hDLL ) ) ;;
             end ;;
          return uResult
       //----------------------------------------------------------------------------//
#ENDIF

FUNCTION Main()
   hDLL = LoadLib32( "QRCodeLib.dll" )
   Principal()
   FreeLibrary( hDLL )
   return nil

FUNCTION Principal()

   LOCAL cStr, cFile

   cStr:="http://www.5volution.com.br/mobile"

   //cFile:=".\QRCode.bmp"

   //FastQRCode(cStr,cFile)

   cFile:=".\QRCodeF.bmp"

   FullQRCode( .T., .F., nRGB(055,155,255), nRGB(0,0,0), cStr, LEVEL_M, ENC_AUTO, 5, 5, 300, 300, cFile )

RETURN NIL

#IFNDEF ForFivewin
        FUNCTION FastQRCode( cStr, cFile )
          #Define DC_CALL_STD  0x0020
          LOCAL nResp
          LOCAL qrDLL
          qrDLL := LoadLibrary( "QRCodelib.Dll" )
          nResp := CallDll( qrDLL, DC_CALL_STD, "FastQRCode", cStr, cFile )
          FreeLibrary( qrDLL )
          RETURN NIL

        FUNCTION FullQRCode( cStr, cFile )
          #Define DC_CALL_STD  0x0020
          LOCAL nResp
          LOCAL qrDLL
          qrDLL := LoadLibrary( "QRCodelib.Dll" )
          nResp := CallDll( qrDLL, DC_CALL_STD, "FullQRCode", autoConfigurate, AutoFit, backColor AS _INT, barColor, Texto, correctionLevel, encoding, marginpixels AS, moduleWidth, Height, Width, FileName )
          FreeLibrary( qrDLL )
          RETURN NIL
#ENDIF

#IFDEF ForFivewin
       DLL32 Function QRCodeLibVer() AS LPSTR FROM "QRCodeLibVer" LIB hDLL
       DLL32 Function FastQRCode( Texto AS LPSTR, FileName AS LPSTR ) AS LPSTR FROM "FastQRCode" LIB hDLL
       DLL32 Function FullQRCode( autoConfigurate AS BOOL, AutoFit AS BOOL, ;
          backColor AS _INT, barColor AS _INT, ;
          Texto AS LPSTR, ;
          correctionLevel AS _INT, ; // Pode ser Low, Medium, High e VeryHigh
          encoding AS _INT, ;
          marginpixels AS _INT, moduleWidth AS _INT, ;
          Height AS _INT, Width AS _INT, ;
          FileName AS LPSTR ) AS LPSTR FROM "FullQRCode" LIB hDLL
#ENDIF

FUNCTION nRGB( nRed, nGreen, nBlue )
   RETURN ( nRed + ( nGreen * 256 ) + ( nBlue * 65536 ) )


Voce precisarão fazer download aqui.
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

SOLUCAO: Geração de QRCode

Mensagempor rochinha » 08 Dez 2014 20:35

Amiguinhos,

Deixem suas impressões(cometários) sobre as soluções encontradas no forum, assim ficamos cientes que as mesmas estão surtindo efeito e servindo ao uso.
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

SOLUCAO: Geração de QRCode

Mensagempor asimoes » 11 Dez 2014 14:46

Rochinha,

Aproveitando o seu exemplo para quem quiser fazer os testes com harbour:

#include "simpleio.ch"
#include "wvtwin.ch"
#include "hbcompat.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "wvgparts.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "hbdyn.ch"
#include "common.ch"
#include "set.ch"
#include "inkey.ch"

FUNCTION Main()
   
   hLib := hb_libLoad( "QRCodeLib.dll" )
   
   cFile:=".\QRCode_"+"3"+"_"+"0"+".bmp"
   
   cStr:="http://www.rio.rj.gov.br/"
   
   hb_DynCall( { "FastQRCode", hLib, HB_DYN_CALLCONV_STDCALL}, cStr, cFile )
   
   cFile:=".\QRCode_"+"3"+"_"+"1"+".bmp"
   
   cStr:="www.globo.com"
   
   hb_DynCall( { "FullQRCode", hLib, HB_DYN_CALLCONV_STDCALL  }, .T., .F., RGBCor(255,255,255), RGBCor(0,0,0), cStr, ;
               3,;
               1,;
               5, 5, 200, 200, cFile )
   
   hb_libFree( hLib )
   
   
RETURN Nil
   
FUNCTION RGBCor( nRed, nGreen, nBlue )
RETURN nRed + ( nGreen * 256 ) + ( nBlue * 256 * 256 )

#---------------------------
# Nome do Execut vel
# ---------------------------
-oQrCode
# ---------------------------
# Bibliotecas
# ---------------------------
-lhwgui
-lprocmisc
-lhbct
-lhbgt
-lgtwvg
-lgtwvt
-lhbwin
-lhbnf
-lhbtip
-lxhb
-lhbnetio
-lhbhpdf
-llibhpdf
-lpng
-lhbzebra
-lhbmemio
-lhbxpp
-lhbmisc
gtwvg.hbc
rddsql.hbc
rddado.hbc
# ---------------------------
# Caminhos dos Includes
# ---------------------------
-incpath=\HB32CORE\hwgui\include;\HB32CORE\include;
# ---------------------------
# Caminho das Libs da HwGui
# ---------------------------
-L\HB32CORE\hwgui\lib;.\
# ---------------------------
# Outros ParÆ’metros
# ---------------------------
-workdir=.\OBJMINGW\
-gtgui
-head=full
-n
-warn=no
-inc
#Para compactar o executável.
#-compr
-b
-mt
-dVERSAO_MINGW
# ---------------------------
# Prg(s) e Rc(s)
# ---------------------------
qrcode.prg
Anexos
QRCodeLib.zip
Dll para testar.
(203.73 KiB) Baixado 417 vezes
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

SOLUCAO: Geração de QRCode

Mensagempor JoséQuintas » 04 Dez 2016 10:48

https://github.com/vszakats/harbour-core/blob/master/contrib/hbzebra/tests/harupdf.prg

https://github.com/vszakats/harbour-core/blob/master/contrib/hbzebra/tests/wingdi.prg

2016-02-28 22:14 UTC+0100 Viktor Szakats (vszakats users.noreply.github.com)
* contrib/hbzebra/qrcode.c
* ChangeLog.txt
* url updates
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

SOLUCAO: Geração de QRCode

Mensagempor Kapiaba » 07 Dez 2016 13:57

Rochinha, hb_out.log

Application Internal Error - C:\DOWNLOAD\QRCode\qrcode.exe
Terminated at: 2016.12.07 14:54:19
Unrecoverable error 6005: Exception error:

    Exception Code:C0000096
    Exception Address:0012FBAC
    EAX:005A2424  EBX:00000000  ECX:00000000  EDX:00000009
    ESI:004EE28C  EDI:004EE49A  EBP:005A2414
    CS:EIP:001B:0012FBAC  SS:ESP:0023:0012FB98
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00010202
    CS:EIP: 0F 35 6A 76 60 FA 12 00 AE 19 79 00 78 FF 12 00
    SS:ESP: 742CB59F 74305888 00791250 00000000 00000000 766A350F 0012FA60 007919AE 0012FF78 7728E195 0154C9DF FFFFFFFE 772CFBD1 772D2199 0012FC34 0012FBF8

    C stack:
    EIP:     EBP:       Frame: OldEBP, RetAddr, Params...

Modules:
0x00400000 0x001BC000 C:\DOWNLOAD\QRCode\qrcode.exe
0x77270000 0x00142000 C:\Windows\SYSTEM32\ntdll.dll
0x6CD30000 0x0004E000 C:\Program Files\AVG\Av\avghookx.dll
0x761B0000 0x000D5000 C:\Windows\system32\kernel32.dll
0x742C0000 0x0004B000 C:\Windows\system32\KERNELBASE.dll
0x74ED0000 0x000A1000 C:\Windows\system32\ADVAPI32.DLL
0x752F0000 0x000AC000 C:\Windows\system32\msvcrt.dll
0x76190000 0x00019000 C:\Windows\SYSTEM32\sechost.dll
0x74A60000 0x000A2000 C:\Windows\system32\RPCRT4.dll
0x737E0000 0x00009000 C:\Windows\system32\VERSION.DLL
0x6ED30000 0x00051000 C:\Windows\system32\WINSPOOL.DRV
0x74800000 0x0004E000 C:\Windows\system32\GDI32.dll
0x74B10000 0x000C9000 C:\Windows\system32\USER32.dll
0x75530000 0x0000A000 C:\Windows\system32\LPK.dll
0x74E30000 0x0009D000 C:\Windows\system32\USP10.dll
0x734D0000 0x00084000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc\COMCTL32.DLL
0x74890000 0x0007B000 C:\Windows\system32\COMDLG32.DLL
0x75290000 0x00057000 C:\Windows\system32\SHLWAPI.dll
0x75540000 0x00C4C000 C:\Windows\system32\SHELL32.dll
0x737F0000 0x00005000 C:\Windows\system32\MSIMG32.DLL
0x76290000 0x0015D000 C:\Windows\system32\OLE32.DLL
0x74760000 0x00091000 C:\Windows\system32\OLEAUT32.DLL
0x6B750000 0x0001C000 C:\Windows\system32\OLEDLG.DLL
0x74850000 0x00005000 C:\Windows\system32\PSAPI.DLL
0x74870000 0x0001F000 C:\Windows\system32\IMM32.DLL
0x753D0000 0x000CD000 C:\Windows\system32\MSCTF.dll
0x00300000 0x0006A000 C:\DOWNLOAD\QRCode\QRCodeLib.dll

Called from FWCALLDLL(0)
------------------------------------------------------------------------
Application Internal Error - C:\DOWNLOAD\QRCode\qrcode.exe
Terminated at: 2016.12.07 14:54:20
Unrecoverable error 6005: Exception error:

    Exception Code:C0000096
    Exception Address:0012FBAC
    EAX:005A2424  EBX:00000000  ECX:00000000  EDX:00000009
    ESI:004EE28C  EDI:004EE49A  EBP:005A2414
    CS:EIP:001B:0012FBAC  SS:ESP:0023:0012FB98
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00010202
    CS:EIP: 0F 35 6A 76 60 FA 12 00 AE 19 79 00 78 FF 12 00
    SS:ESP: 742CB59F 74305888 00791250 00000000 00000000 766A350F 0012FA60 007919AE 0012FF78 7728E195 0154C9DF FFFFFFFE 772CFBD1 772D2199 0012FC34 0012FBF8

    C stack:
    EIP:     EBP:       Frame: OldEBP, RetAddr, Params...

Modules:
0x00400000 0x001BC000 C:\DOWNLOAD\QRCode\qrcode.exe
0x77270000 0x00142000 C:\Windows\SYSTEM32\ntdll.dll
0x6CD30000 0x0004E000 C:\Program Files\AVG\Av\avghookx.dll
0x761B0000 0x000D5000 C:\Windows\system32\kernel32.dll
0x742C0000 0x0004B000 C:\Windows\system32\KERNELBASE.dll
0x74ED0000 0x000A1000 C:\Windows\system32\ADVAPI32.DLL
0x752F0000 0x000AC000 C:\Windows\system32\msvcrt.dll
0x76190000 0x00019000 C:\Windows\SYSTEM32\sechost.dll
0x74A60000 0x000A2000 C:\Windows\system32\RPCRT4.dll
0x737E0000 0x00009000 C:\Windows\system32\VERSION.DLL
0x6ED30000 0x00051000 C:\Windows\system32\WINSPOOL.DRV
0x74800000 0x0004E000 C:\Windows\system32\GDI32.dll
0x74B10000 0x000C9000 C:\Windows\system32\USER32.dll
0x75530000 0x0000A000 C:\Windows\system32\LPK.dll
0x74E30000 0x0009D000 C:\Windows\system32\USP10.dll
0x734D0000 0x00084000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc\COMCTL32.DLL
0x74890000 0x0007B000 C:\Windows\system32\COMDLG32.DLL
0x75290000 0x00057000 C:\Windows\system32\SHLWAPI.dll
0x75540000 0x00C4C000 C:\Windows\system32\SHELL32.dll
0x737F0000 0x00005000 C:\Windows\system32\MSIMG32.DLL
0x76290000 0x0015D000 C:\Windows\system32\OLE32.DLL
0x74760000 0x00091000 C:\Windows\system32\OLEAUT32.DLL
0x6B750000 0x0001C000 C:\Windows\system32\OLEDLG.DLL
0x74850000 0x00005000 C:\Windows\system32\PSAPI.DLL
0x74870000 0x0001F000 C:\Windows\system32\IMM32.DLL
0x753D0000 0x000CD000 C:\Windows\system32\MSCTF.dll
0x00300000 0x0006A000 C:\DOWNLOAD\QRCode\QRCodeLib.dll

Called from FWCALLDLL(0)
------------------------------------------------------------------------


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

SOLUCAO: Geração de QRCode

Mensagempor JoséQuintas » 07 Dez 2016 14:45

0x00300000 0x0006A000 C:\DOWNLOAD\QRCode\QRCodeLib.dll


Não sei se é o caso.
Geralmente isso acontece quando o parâmetro é de um tipo diferente do esperado.

Se for por referência, string, tem que ser de um tamanho igual ou maior que o retorno.

x := Space(50000)
CallDll( "nome.dll", "funcao", @x )


Apenas como exemplo.
O mesmo se for int, double, etc.

O resultado seria o programa "invadir" uma área que não pertence a ele, acessando uma parte da memória de outro programa.
Só resta ao Windows considerar como sendo esse tipo de erro, GPF.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18152
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

SOLUCAO: Geração de QRCode

Mensagempor rubens » 07 Dez 2016 15:15

Com a HaruPDF funciona perfeitamente... mas aí a impressora tem estar instalada o driver spooler...

No exemplo da pasta C:\MiniGUI\SAMPLES\Advanced\HaruPDF acrescentei a linha do QrCode copiada do XML de uma NFCe e gerou o QrCode certinho... até leu pelo Android.
A função é esta

hb_zebra_create_qrcode( cCode, nFlags )


Gerou o PDF em anexo com o QR_Code... agora é só montar a NFCe. (Não estou com tempo agora, mas vou fazer) daí é indiferente de qual impressora, basta ter o driver spooler instalado e aceitar imprimir PDF.

TestHaru.pdf
(10.9 KiB) Baixado 275 vezes


Podem fazer um teste lendo o qr_code gerado aqui que ele vai direcionar para uma nfce no site da Sefaz-MT.

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

SOLUCAO: Geração de QRCode

Mensagempor Mario Mesquita » 08 Dez 2016 12:18

Boa tarde, pessoal.

Gostaria de saber se essa solução do QR-Code roda para a HMG 3.0.46.

O "#include <hmg_hpdf.ch>" não foi reconhecido pelo compilador, talvez tenha outro nome lá.

Tô precisando muito disso e se alguem puder me dar uma luz agradeço!

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

SOLUCAO: Geração de QRCode

Mensagempor Mario Mesquita » 09 Dez 2016 12:46

Boa tarde, amigos!

Ainda precisando daquela dica sobre o QR-Code. Agora estou tentando com a HMG 3.4.3. Como sempre a documentação disponível ajuda pouco, no manual on line "HMG Reference" sobre o HPDF, não fala nada sobre.

Essa dica do Rubens pode ser feita nela? Ou a MiniGui dele é a Extended?

Qualquer dica me ajuda, desde ontem correndo atrás disso...

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

SOLUCAO: Geração de QRCode

Mensagempor rubens » 09 Dez 2016 14:07

Mário

Uso a Minigui Extends

Não sei se vai rodar na HMG.

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

SOLUCAO: Geração de QRCode

Mensagempor Mario Mesquita » 09 Dez 2016 15:04

Olá, Rubens!

O HMG também usa a HMG HPDF, talvez com alguma semelhança. Difícil está sendo encontrar algo que me auxilie.

Até achei alguma coisa, mas não deu certo, tipo isso aqui:

      //// teste QR-Code //
      hBitMap := HMG_CreateBarCode( 'http://www.teste.com.br',;
                              "QRCODE",3,100,.T.,'',{0,0,0},{255,255,255},.F.,.F.,.F.)
      @ xLn+55,60 PRINT hBitMap //FONT "QRCODE" SIZE 12


Usando a MiniPrint. Talvez seja o caso de tentar na geração do PDF, mas acreditei que isso aí retornaria uma imagem que eu pudesse colar no documento que está sendo impresso.

É frustrante saber que o recurso está lá e vc não consegue usar. Lendo também descobri que dá pra gerar ou converter os PDFs para PDF/A, que é um tipo para documentos eletrônicos muito usado pelo governo. Preciso disso também e achei alguma coisa nas pastas do programa, mas cadê documentação? Até guardei o que achei para buscar e tentar entender:

- Achado em \hmg 3.4.3\harbour\contrib\hbhpdf\harupdf.ch :

/* PDF/A mode * /
#define HPDF_PDFA_1A                        0
#define HPDF_PDFA_1B                        1    <--- Pelo manual do TJ, o formato é esse.

Pode ser útil em converter o PDF normal para o PDF/A.

- Achado em \hmg 3.4.3\harbour\contrib\hbzebra\hbzebra.ch :

#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

Pode ser útil em preparar o QR-Code.


Quem tiver uma dica pra dar, estamos aí.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

SOLUCAO: Geração de QRCode

Mensagempor Mario Mesquita » 10 Dez 2016 08:28

Bom dia, pessoal.

Depois de pesquisar o dia todo sem sucesso, à noite dei um passo á frente para gerar o QR-Code num documento.

Relendo algumas coisas, notei que uma função que testei sem sucesso tinha um parâmetro de criação de um arquivo .PNG com o QR_Code. Em tese, funcionou. Claro que tem que testar se o código será lido corretamente e ainda não o fiz, mas devo testar isso em breve.

Se alguém estiver precisando e quiser tentar a sorte, aí está:

      //// teste QR-Code //
      hBitMap := HMG_CreateBarCode( 'http://www.teste.com.br',;
                              "QRCODE",3,100,.T.,'QRTeste.png',{0,0,0},{255,255,255},.F.,.F.,.F.)
      msginfo(hbitmap)
      if ! file("QRTeste.png")
         msginfo('não achei o png')
      else   
         msginfo('achei o png')
      endif                       
      @ xln+55,10 PRINT IMAGE "QRTeste.png" ;
                   WIDTH  45                 ;
                  HEIGHT 20                 ;
                  STRETCH
     


Adianto que não fiz refino nenhum, consegui isso de madrugada, no documento o QR saiu meio alongado pois copiei de um trecho do meu programa, mas creio que dando um trato existe uma boa chance de ser uma solução relativamente simples.

Querendo se aprofundar ou testar novas possibilidades, esse programa está na medida, mas tem uma falha: Na hora de criar o .PNG, acho que ele está gravando sem a extensão e não é reconhecido como tal. A solução é colocar o ".png" junto com o nome. Aí funciona. Ver em: C:\hmg.3.4.3\SAMPLES\HFCL\HMG_Zebra

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

SOLUCAO: Geração de QRCode

Mensagempor Mario Mesquita » 02 Dez 2018 12:19

Boa tarde, pessoal.

Reativando esse post para pedir ajuda a vocês.

Como expliquei aqui na época, deu pra resolver o QR-Code com a função HMG_CreateBarCode() e tudo estava bem até agora.

O que aconteceu? Tem uma falha na função. Para gerar com URLs em geral, tudo bem. Tá funcionando até hoje.

Mas surgiu uma exigência em que tenho que colocar um texto e ao gerar o QR, ele sai faltando uma parte, o fim do lado direito, impedindo a leitura.

Tem um demo em C:\hmg.3.4.4\SAMPLES\HFCL\HMG_Zebra, e lá pode-se testar com diversos caracteres de texto e em alguns casos gera o QR "defeituoso".

A pergunta é: será que houve alguma correção para essa função? Pesquisando aqui, não vi.

Não tendo solução, qual a alternativa mais prática e rápida pra gerar um QR Code e colar no documento?

Desde já, agradeço a ajuda de vocês.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

SOLUCAO: Geração de QRCode

Mensagempor Mario Mesquita » 03 Dez 2018 12:42

Boa tarde, pessoal.

Estou tentando usar o recurso que o Rochinha postou, pois atenderia o meu problema, mas está dando erro ao compilar:

"Error E0030 Syntax error "Syntax error at 'AS'. Abaixo, o trecho do código:

   #IFNDEF ForFivewin
           FUNCTION FastQRCode( cStr, cFile )
             #Define DC_CALL_STD  0x0020
             LOCAL nResp
             LOCAL qrDLL
             qrDLL := LoadLibrary( "QRCodelib.Dll" )
             nResp := CallDll( qrDLL, DC_CALL_STD, "FastQRCode", cStr, cFile )
             FreeLibrary( qrDLL )
             RETURN NIL

           FUNCTION FullQRCode( cStr, cFile )
             #Define DC_CALL_STD  0x0020
             LOCAL nResp
             LOCAL qrDLL
             qrDLL := LoadLibrary( "QRCodelib.Dll" )
                  // Aqui, nessa função CallDll:
             nResp := CallDll( qrDLL, DC_CALL_STD, "FullQRCode", autoConfigurate, AutoFit, backColor AS _INT, barColor, Texto, correctionLevel, encoding, marginpixels AS, moduleWidth, Height, Width, FileName )
            
             FreeLibrary( qrDLL )
             RETURN NIL
   #ENDIF


Se alguém conseguiu usar o recurso e puder me dar uma dica, agradeço. Estou compilando com HMG 3.4.4 Unicode.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 16 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