Clipper On Line • Ver Tópico - Código de Barras boleto bancário

Código de Barras boleto bancário

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Código de Barras boleto bancário

Mensagempor Shark » 24 Jul 2020 19:08

Por mais estranho que pareça, após todos os longos anos na carreira de programador, pela primeira vez tenho a real necessidade de imprimir um código de barras de boleto que seja legível para os leitores de celular etc e tal.

Após cansativas leituras e tentativas sem êxito, recorro aqui aos colegas no intuito de tirar esse fantasma da minha vida: CÓDIGO DE BARRAS DE BOLETO BANCÁRIO.

Alguém pode ajudar com uma solução definitiva que não envolva utilizar programas de terceiros acoplados aos meu?

Minha dúvidas é: o código de barras é uma real encriptação da linha digitáveis ou é necessário fazer algum ajuste?
Existe alguma lib que possa ser utilizada num ambiente xHarbour / Fivewin que gere a imagem desse código de barras?

No Aguardo de sugestões...
Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes

Código de Barras boleto bancário

Mensagempor JoséQuintas » 25 Jul 2020 13:03

Shark escreveu:Minha dúvidas é: o código de barras é uma real encriptação da linha digitáveis ou é necessário fazer algum ajuste?


Estranhei a pergunta, dá a impressão de que já tem a linha digitável, e não sabe fazer o código de barras.
Mas um não existe sem o outro, o que leva a concluir que não tem nada.

Shark escreveu:Existe alguma lib que possa ser utilizada num ambiente xHarbour / Fivewin que gere a imagem desse código de barras?


Tem a opção de usar fonte pra isso, algo como escrever um texto, mas ao invés de usar fontes comuns, usa a fonte pra código de barras.
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: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Código de Barras boleto bancário

Mensagempor Shark » 28 Ago 2020 05:14

Exatamente isso José Quintas. Tenho a linha digitável mas não consigo gerar o código de barras. Teria algum exemplo para postar que demonstre como utilizar fontes para imprimir o código de barras? Além da dificuldade "gráfica" para gerar o código de barras, pelo que pesquisei, também é necessário inverter algumas posições dos números da linha digitável para gerar essas barras corretamente.

Agradeço antecipadamente... Aguardando uma solução concreta dos colegas. SharkAbraços!
Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes

Código de Barras boleto bancário

Mensagempor Mario Mesquita » 28 Ago 2020 10:33

Bom dia.

Eu uso essa em anexo. Muito boa, mas não sei por quê, não sai em PDF. Mas para impressos e outros formatos funciona bem.

Inclusive com três homologações, Santander, Caixa e Bradesco.

Saudações,
Mario.

Obs: Não permitiu anexar. Tenta achar na internet, catei isso por lá, mas não lembro de onde: Code_2_5.ttf
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

Código de Barras boleto bancário

Mensagempor MarcioCezar » 30 Abr 2021 22:58


Exemplo de utilização:
CodigoBarra2I5( cLinhaDigitavel, oPrn, {  2750, 000 } )

FUNCTION CodigoBarra2I5( CodigoAuxiliar, oPrn, aCantos, nTamBarra )

   LOCAL obr
   LOCAL X := Col := Lar := nWidth := 0
   LOCAL oPen                   //2.549                            7.647
   LOCAL nComprimentoBarraFina := 3, nComprimentoBarraGrossa := 7.1

   DEFAULT nTamBarra := 130
   DEFAULT aCantos   := { 30, 30 }

   CodigoAuxiliar := Intercalado25( CodigoAuxiliar )

   DEFINE brush oBr color CLR_BLACK

   FOR X := 1 to Len( CodigoAuxiliar )

      IF SUBSTR( CodigoAuxiliar, X, 1 ) = '0'

         IF MOD( X, 2 ) <> 0
            oPrn:fillRect( { aCantos[1], aCantos[2], aCantos[1] + nTamBarra, aCantos[2] + nComprimentoBarraFina }, oBr )
         ENDIF

         aCantos[2] += nComprimentoBarraFina

      ELSE

         IF MOD( X, 2 ) <> 0
            oPrn:fillRect( { aCantos[1], aCantos[2],  aCantos[1] + nTamBarra,  aCantos[2] + nComprimentoBarraGrossa }, oBr )
         ENDIF

         aCantos[2] += nComprimentoBarraGrossa

     ENDIF

   NEXT

   oBr:End()

RETURN
Anexos
Intercalado25.Prg
(2.39 KiB) Baixado 62 vezes
MarcioCezar
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 30 Abr 2021 20:32
Cidade/Estado: Jaboatão dos Guararapes
Curtiu: 0 vez
Mens.Curtidas: 1 vez




Retornar para FiveWin

Quem está online

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