|
Estou anexando a fonte e as explicações como utilizar.
padrão febraban 5 2 intercalado Andrea Chiuvitto wrote: Iderval, Eu vou precisar gerar etiquetas com codigo de barra com algumas informações, por exemplo, IF08392152F*****2152 A1, mas se vc puder enviar fonte padrão febraban tambem, irá me ajudar em outro projeto. Andrea. |
Code_2_5.ttf
Description: application/unknown-content-type-ttffile
Code 2/5 Interleaved True Type Font =================================== Este Fonte True Type foi desenvolvido para plataformas Windows 95/98/NT e para ser uma alternativa aos desenvolvedores, visando facilitar a utiliza��o e a impress�o do c�digo de barras no padr�o 2 de 5 Intercalado, utilizado pelas institui��es financeiras do pa�s, nos boletos banc�rios, entre outros (Padr�o CNAB400 da FEBRABAN).
Garantia
========
Este Fonte True Type n�o tem garantia de nenhuma esp�cie, cabendo ao usu�rio
utiliz�-lo sob seu pr�prio risco.
Distribui��o
============
Este Fonte � freeware, podendo ser distribuido livremente.
A comercializa��o do mesmo � proibido parcial ou integralmente.
Instala��o
==========
Para instalar o Fonte, basta copiar o arquivo CODE_2_5.TTF no diret�rio Fonts do
windows (ex.: C:\Windows\Fonts).
Para maiores detalhes da instala��o do Fonte, vide Help do pr�prio Windows.
Utiliza��o
==========
O padr�o 2 de 5 Intercalado tem as seguintes caracter�sticas:
� permite representa��o num�rica
� utiliza caracteres identificadores de in�cio e fim
� permite leitura bidirecional
� c�digo de tamanho vari�vel: � formado pela combina��o intercalada de cada dois
caracteres, utilizando sua configura��o bin�ria. Portanto, o c�digo deve conter n�mero
par de caracteres.
� quantidade ilimitada de caracteres
� as barras estreitas (E) s�o representadas pelo n�mero (0)
� as barras largas (L) s�o representadas pelo n�mero 1 (um)
Este fonte n�o gera o c�digo diretamente, a partir de uma sequ�ncia de d�gitos. Para
poder imprimir o c�digo de barras, � necess�rio efeturar um tratamento da sequ�ncia de
d�gitos, pois cada caracter do Fonte representa dois d�gitos de 00 a 99.
Para converter a sequ�ncia de d�gitos para o c�digo de barras, deve-se quebrar esta
sequ�ncia de dois em dois caracteres e passar pela seguinte rotina
if (A <= 49)
{
B = A + 48;
}
else
{
B = A + 142;
}
onde A � representa o valor dos 2 d�gitos para codificar, e B ser� o valor do c�digo
ASCII resultante destes 2 d�gitos.
Ex.: Para codificar 1256
12 -> 12 + 48 = 60
56 -> 56 + 142 = 198
Para finalizar, a sequ�ncia de caracteres gerada a partir dos d�gitos, dever� estar
entre os delimitadores inicial e final, representado pelos caracteres:
( - delimitador inicial
) - delimitador final
No exemplo acima, o resultado final seria : (<�)
================================================================================================
Exemplos de fun��es
===================
=================
= Pascal/Delphi =
=================
Function StringCodigoBarra(sCodigo : String) : String;
var
sCod, sTmp : String;
ii, jj, iTmp : Integer;
begin
//Pressupoe-se que existe um numero par de digitos em sCodigo
//Inicializacao
sTmp := '';
iTmp := 0;
ii := 1;
jj := Length(sCodigo);
sCod := '';
While ii < jj do
begin
//Separando os digitos dois a dois
sTmp := Copy(sCodigo, ii, 2);
ii := ii + 2;
iTmp := StrToInt(sTmp);
//A + ABS(A<=49)*48 + ABS(A>=50)*142
if (iTmp <= 49) Then
iTmp := iTmp + 48
else
iTmp := iTmp + 142;
// Pegando o caracter da conta acima.
sCod := sCod + Chr(Byte(iTmp));
end;
//Delimitadores - inicial e final
if (Length(sCod) > 0) then
sCod := '(' + sCod + ')';
//Retorno da funcao
StringCodigoBarra := sCod;
end;
================================================================================================
=================
= Visual Basic =
=================
Function StringCodigoBarra(ByVal sCodigo As String) As String
Dim sCod As String, sTmp As String
Dim ii As Integer, jj As Integer, iTmp As Integer
'Pressupoe-se que existe um numero par de digitos em sCodigo
'Inicializacao
sTmp = ""
iTmp = 0
ii = 1
jj = Len(sCodigo)
sCod = ""
Do While ii < jj
'Separando os digitos dois a dois
sTmp = Mid(sCodigo, ii, 2)
ii = ii + 2
iTmp = CInt(sTmp)
'A + ABS(A<=49)*48 + ABS(A>=50)*142
iTmp = iTmp + Abs(iTmp <= 49) * 48 + Abs(iTmp >= 50) * 142
'Pegando o caracter da conta acima.
sCod = sCod & Chr(iTmp)
Loop
'Delimitadores - inicial e final
If (sCod <> vbNullString) Then
sCod = "(" + sCod + ")"
End If
'Retorno da funcao
StringCodigoBarra = sCod
End Function
================================================================================================
Aos desenvolvedores em C/C++ eu ficarei devendo, pois fazem muito tempo que
n�o trabalho com esta maravilhosa linguagem (infelizmente), mas para quem se
habilitar, basta converter o c�digo Pascal, pois a estrutura � a mesma e a convers�o �
mais simples do que se utilizar o c�digo VB.
================================================================================================
Meus agradecimentos ao Sr. Ant�nio Gomes, pela ajuda e material para mim enviado, pelo
qual, a partir destes, pude criar este fonte.
Elio Yamaguchi
[EMAIL PROTECTED]
