Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dataset

Código de Barras em PDF

Recommended Posts

Boa tarde pessoal...

 

Estou concluindo o boleto da Caixa em PDF.

 

Sabem aquele script que cria código de barras ? Pelo que vi ele é padrão pra todos os boletos. Segue um exemplo do bixo:

Sub WBarCode( Valor )

   Dim f, f1, f2, i
   Dim texto
   Const fino = 1
   Const largo = 3
   Const altura = 50
   Dim BarCodes(99)

   if isempty(BarCodes(0)) then
       BarCodes(0) = "00110"
       BarCodes(1) = "10001"
       BarCodes(2) = "01001"
       BarCodes(3) = "11000"
       BarCodes(4) = "00101"
       BarCodes(5) = "10100"
       BarCodes(6) = "01100"
       BarCodes(7) = "00011"
       BarCodes(8) = "10010"
       BarCodes(9) = "01010"
       for f1 = 9 to 0 step -1
           for f2 = 9 to 0 Step -1
               f = f1 * 10 + f2
               texto = ""
               for i = 1 To 5
                   texto = texto & mid(BarCodes(f1), i, 1) + mid(BarCodes(f2), i, 1)
               next
               BarCodes(f) = texto
           next
       next
   end if
%>
<img src="imagens/p.gif" width="<%=fino%>" height="<%=altura%>" border="0" /><img 
src="imagens/b.gif" width="<%=fino%>" height="<%=altura%>" border="0" /><img 
src="imagens/p.gif" width="<%=fino%>" height="<%=altura%>" border="0" /><img 
src="imagens/b.gif" width="<%=fino%>" height="<%=altura%>" border="0" /><img 
<%
texto = valor
if len( texto ) mod 2 <> 0 then
   texto = "0" & texto
end if

'Draw dos dados
do while len(texto) > 0
   i = cint( left( texto, 2) )
   texto = right( texto, len( texto ) - 2)
   f = BarCodes(i)
   for i = 1 to 10 step 2
       if mid(f, i, 1) = "0" then
           f1 = fino
       else
           f1 = largo
       end if
       %>
       src="imagens/p.gif" width="<%=f1%>" height="<%=altura%>" border="0" /><img 
       <%
       if mid(f, i + 1, 1) = "0" Then
           f2 = fino
       else
           f2 = largo
       end if
       %>
       src="imagens/b.gif" width="<%=f2%>" height="<%=altura%>" border="0" /><img 
       <%
   next
loop
%>
src="imagens/p.gif" width="<%=largo%>" height="<%=altura%>" border="0" /><img 
src="imagens/b.gif" width="<%=fino%>" height="<%=altura%>" border="0" /><img 
src="imagens/p.gif" width="<%=1%>" height="<%=altura%>" border="0" />
<%
end sub
%>

 

Pois então... preciso converter isso pra PDF, estou usando o FPDF.

Comessei a desenvolver e ta gerando o código de barras, mas eu gostaria que os mais experts da área pudessem me dizer se ta certo ? As vezes batendo o olho a gente acha um #@?$%~ bug que ferra com tudo.

 

Lá vai em FPDF:

Sub fbarcode(Valor)
Dim f, f1, f2, i
Dim texto
   Dim p11
   p11=11
Const fino = 0.4
Const largo = 0.7
Dim BarCodes(99)
if isempty(BarCodes(0)) then
	BarCodes(0) = "00110"
	BarCodes(1) = "10001"
	BarCodes(2) = "01001"
	BarCodes(3) = "11000"
	BarCodes(4) = "00101"
	BarCodes(5) = "10100"
	BarCodes(6) = "01100"
	BarCodes(7) = "00011"
	BarCodes(8) = "10010"
	BarCodes(9) = "01010"
	for f1 = 9 to 0 step -1
		for f2 = 9 to 0 Step -1
			f = f1 * 10 + f2
			texto = ""
			for i = 1 To 5
				texto = texto & mid(BarCodes(f1), i, 1) + mid(BarCodes(f2), i, 1)
			next
			BarCodes(f) = texto
		next
	next
end if

   xPos=14
   p201=233
   pdf.rect xPos, p201, fino, p11, "F"
   xPos = xPos + fino + fino
   pdf.rect xPos, p201, fino, p11, "F"
   xpos = xpos + fino + fino
   For n = 1 To Len(valor_barras) Step 2
       cASC = cint(Mid(valor_barras, n, 2))
       For i = 1 To 10 Step 2
           If Mid(BarCodes(cASC), i, 1) = "0" Then
               F = fino
           Else
               F = largo
           End If
           pdf.rect xpos, p201, F, p11, "F"
           xpos = xpos + F
           If Mid(BarCodes(cASC), i + 1, 1) = "0" Then
               xpos = xpos + fino
           Else
               xpos = xpos + largo
           End If
       Next
   Next

   pdf.rect xpos, p201, largo, p11, "F"
   xpos = xpos + fino + largo
   pdf.rect xpos, p201, fino, p11, "F"

end Sub

 

E então... será que vai ???

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente, esta tudo certo....

você rodou ele ?!?!

deu algum erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem... erro nao deu.

 

O script montou o código de barras direitinho.

Só não sei se funciona mesmo.

 

Por exemplo, passar no leitor de código de Barras e ver se realmente a informação é lida corretamente.

 

Não tem como testar ne ?? Vou ter que achar alguém que possua uma conta com esse serviço, gerar um boleto em PDF, pagar e conferir com ele se entrou o pagamento.

 

Mas se você analizou e não viu nenhuma anormalidade... entao acredito que pode dar certo.

 

Não achei nenhum exemplo na WEB desse script pra comparar.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é você terá que gerar o boleto, e verificar em um posto autorizado (aqueles que aceitam cobrança da CEF) e ver se passou

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum

 

Notei que você postou esse código no Repositório do MXStudio (http://www.mxstudio.com.br/forum/topic/103875-boleto-da-caixa-cef-com-pdf/)

 

O Título está como: boleto da Caixa CEF com PDF, mas ali não é o boleto completo, e sim somente a rotina que gera o código de barras. A linha digitável do boleto deve ser passada como parâmetro pra função.

 

Seria interessante corrigir o título pra nao iludir quem está buscando uma solução completa.

 

Se quizer, posso te mandar o código completo do Boleto Bancário da Caixa em PDF, assim que eu concluir é claro...

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.