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...
Código de Barras boleto bancário
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Código de Barras boleto bancário
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.Shark escreveu:Minha dúvidas é: o código de barras é uma real encriptação da linha digitáveis ou é necessário fazer algum ajuste?
Mas um não existe sem o outro, o que leva a concluir que não tem nada.
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.Shark escreveu:Existe alguma lib que possa ser utilizada num ambiente xHarbour / Fivewin que gere a imagem desse código de barras?
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/
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/
Código de Barras boleto bancário
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!
Agradeço antecipadamente... Aguardando uma solução concreta dos colegas. SharkAbraços!
- Mario Mesquita
- Usuário Nível 4

- Mensagens: 613
- Registrado em: 08 Dez 2009 13:47
- Localização: Rio de Janeiro
Código de Barras boleto bancário
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
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
-
MarcioCezar
- Usuário Nível 1

- Mensagens: 9
- Registrado em: 30 Abr 2021 20:32
- Localização: Jaboatão dos Guararapes
Código de Barras boleto bancário
Código: Selecionar todos
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 116 vezes