Como Imprimir Cód.Barras no Harbour 3.2 ?

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

Moderador: Moderadores

fogueira
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 02 Dez 2021 17:14
Localização: Portugal

Como Imprimir Cód.Barras no Harbour 3.2 ?

Mensagem por fogueira »

Obrigado , José Quintas.

O meu objectivo é produzir um ficheiro com a imagem do qrcode.

Vi o exemplo cairo.prg

Criei uma pasta para onde copiei o conteudo da pasta hbzebra e da pasta hbcairo

ao compilar tenho erro de

w0001 ambiguous reference "CAIRO_FONT_SLANT_NORMAL"
e
w0001 ambiguous reference "CAIRO_FONT_WEIGHT_NORMAL"

Não sei se existe alguma outra solução fácil, para um principiante, para gerar imagem do qrcode
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como Imprimir Cód.Barras no Harbour 3.2 ?

Mensagem por JoséQuintas »

fogueira escreveu:Criei uma pasta para onde copiei o conteudo da pasta hbzebra e da pasta hbcairo
ao compilar tenho erro de
w0001 ambiguous reference "CAIRO_FONT_SLANT_NORMAL"
e
w0001 ambiguous reference "CAIRO_FONT_WEIGHT_NORMAL"
Não sei se existe alguma outra solução fácil, para um principiante, para gerar imagem do qrcode
Geralmente letra maiúscula é algo com #define, que tem em algum arquivo CH.
Provavelmente faltou #include "hbcairo.ch", mas CONFIRME qual o nome correto, deve ter no fonte de exemplo.

Ainda bem que compila com -w3 -es2, senão não iria saber que está faltando isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como Imprimir Cód.Barras no Harbour 3.2 ?

Mensagem por JoséQuintas »

fogueira escreveu:Criei uma pasta para onde copiei o conteudo da pasta hbzebra e da pasta hbcairo
Mas pera aí... copiou os exemplos ou os fontes da LIB?
basta acrescentar na compilação:

Código: Selecionar todos

hbzebra.hbc
hbcairo.hbc
E confirmar o #include, como já mencionei antes.

Compile primeiro o que tem na pasta test, que é exemplo de uso.
Feito isso, funcionando, aí parte pra sua rotina.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Como Imprimir Cód.Barras no Harbour 3.2 ?

Mensagem por JoséQuintas »

um exemplo que uso em pdf:

Código: Selecionar todos

#include "hbzebra.ch"
...
METHOD DrawBarcodeQRCode( nX, nY, nLineWidth, cCode, nFlags )

   LOCAL nLineHeight, hZebra

   hZebra := hb_Zebra_Create_QRCode( cCode, nFlags )
   nLineHeight := nLineWidth
   IF hb_Zebra_GetError( hZebra ) == 0
      hb_Zebra_Draw( hZebra, { | x, y, w, h | HPDF_Page_Rectangle( ::oPDFPage, x, y, w, h ) }, nX, nY, nLineWidth, -nLineHeight )
      HPDF_Page_Fill( ::oPDFPage )
      hb_Zebra_Destroy( hZebra )
   ENDIF

   RETURN NIL
Note que tem
hb_Zebra_Create_QRCode() que faz o cálculo inicial
hb_Zebra_Draw(), que é onde passa o codeblock que faz o desenho, que nesse caso é uma função que desenha no PDF
hb_Zebra_Destroy() no final do uso

O que está no codeblock deve ser substituído por alguma rotina equivalente pra desenhar aonde você quer.
Geralmente uma rotina de desenhar retângulo, que faça isso no dispositivo aonde vai sair o retângulo (impressora, pdf, tela, etc)
Não precisa ser obrigatoriamente a hbcairo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder