Código de Barras 2 de 5

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Código de Barras 2 de 5

Mensagem por Hasse »

Boa noite colegas.

Alguém tem a fonte.ttf do Código de Barras 2 de 5 Intercaldo (2 of 5 Interleaved) ?

Pesquisei na Internet até cansar. Encontrei muitas fontes, menos esta que estou precisando.

Se não houver vou ter que partir para o trabalho e desenvolver uma função para este fim.

Nota de Moderação:
por Maligno: O presente tópico foi movido da seção "[x]Harbour", uma vez que seu conteúdo está desalinhado com os objetivos daquela seção, onde só podem constar matérias de cunho estritamente técnico, relacionadas à linguagem XBase com a ferramenta [x]Harbour.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Código de Barras 2 de 5

Mensagem por alaminojunior »

Dá uma olhada neste post https://pctoledo.org/forum/viewto ... lit=boleto
Inclusive você mesmo postou nele. Ou me perdoe se não é o que precisa. Caso o arquivo não conste mais no servidor, dá um alô que a gente dá um jeito.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Código de Barras 2 de 5

Mensagem por Hasse »

Bom dia Alamino.

É, realmente eu postei aquela sugestão, inclusive testada, mas é justamente que comentei no atual tópico, não é a fonte do 2 de 5 Intercalado. Alí tem a opção do Cad Bar, tem do Cod39, e outros.

Ainda me falta a fonte do 2 de 5 Intercalado em formato TTF.

Ao colega Maligno. Não entendi o que eu fiz de incorreto, pois a mensagem que eu postei e composta somente por aquelas 3 linhas que ainda constam da minha mensagem original. Não me lembro de ter colocado algo ali que não fosse do xHarbour.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Código de Barras 2 de 5

Mensagem por Maligno »

Solicitar fonte TTF não pode ser considerado assunto técnico relacionado à linguagem XBase com [x]Harbour, concorda? :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Código de Barras 2 de 5

Mensagem por alaminojunior »

Hasse escreveu:Ainda me falta a fonte do 2 de 5 Intercalado em formato TTF.
Estranho, foi justamente o que o seu conterrâneo citou ter testado com êxito. Vamos ver se ele dá alguma luz.
Eu testei (só o "Barra 2 de 5 Intercalado", código do boleto) e funciona. O Robson também testou com sucesso. É só fazer, por exemplo (e resumidamente):

num:="12345678901234567890123456789012345678901234"
col=oprinter:mm_to_posX(100)
lin=oprinter:mm_to_posY(30)
setpos(col,lin)
oPrinter:SetFont('BARRAS BIRO',15,{3,25})
oPrinter:TextOutat(col,lin,Barra25i(num),.f.,.f.,1)
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Código de Barras 2 de 5

Mensagem por gvc »

E cadê o eMail para eu enviar os arquivos???

gvcortez@uol.com.br
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Código de Barras 2 de 5

Mensagem por Hasse »

Ok, ele fala do 2 de 5 Intercalado, mas não é fonte.TTF. Trata-se de uma função que gera as colunas em tempo de execução do aplicativo.

Usando fonte.TTF a implementação fica extremamente mais fácil, pois a barra vem pronta via fonte.

Mais ou menos assim:

Código: Selecionar todos

oPrinter:SetFont('Barra25')   && supondo que o nome da fonte seja 'Barra25'.
oPrinter:TextOut('159256',.t.)

ou

oPrinter:TextOutAt( yy , xx ,'159256')    && se houver necessidade de posição especial.
E lá estará a barra impressa contendo o valor "159256" no formato '2 de 5 Intercalado' sem qualquer outro implemento.

Como já falei, se esta fonte não estiver disponível, forçosamente terei que usar uma Função para isto, quem sabe até aquela fornecida pelo colega naquela mensagem pelos colegas Eolo e Asimoes. Eu também já tenho uma função que faz isto, que desenvolvi no tempo do Clipper.

Ao Colega Maligno: Eu concordo contigo, somente em parte, mas aceito numa boa a tua colocação e decisão. Me explico: penso que não são muitos colegas que costumam verificar o "bate-papo". 1-Se isto for verdade (não sei), as chances de se conseguir uma resposta são bem menores. 2-Também menos colegas tomarão conhecimento da solução. 3-Menos colegas terão a solução para problemas semelhantes.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Código de Barras 2 de 5

Mensagem por Maligno »

[OT]
Em qualquer fórum há sempre um critério de classificação dos tópicos. O critério nesse fórum é pela afinidade dos temas. Por isso temos seções bem divididas. Acredito que você vai concordar que não seria justo classificar apenas com base nas necessidades individuais dos usuários ou nas boas chances de se obter resposta. Se fosse assim, o fórum seria uma balbúrdia. Ademais, temos um sistema de busca que pode encontrar qualquer coisa em qualquer seção.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Código de Barras 2 de 5

Mensagem por Hasse »

Aceito numa muito boa Maligno, sem qualquer ressentimento, por menor que seja. Obrigado pela tua sempre cordial atenção.

Ao colega GVC:
ivo.hasse@fiomaq.com.br
ivohasse@fiomaq.com.br
Como também vale o ícone do "envelopezinho" abaixo do meu avatar.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Código de Barras 2 de 5

Mensagem por gvc »

[Hasse]

Já mandei os arquivos que tenho para o seu eMail.
O "envelopinho" permite mandar texto e não arquivo anexo. Eu juro que já havia entrado nessa página antes de pedir o seu eMail para enviar os arquivos.

Só para constar:
Eu olho a data de cada tópico. Como eu uso o FW, só não olho nada das outras libs gráficas. (Preconceito???)

Mas tudo bem. Espero ter ajudado. Avise se funcionou. Ah. Poste essa parte do código que vc usa para montar o código de barras para outros colegas poderem usar tb.

Boa sorte.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Código de Barras 2 de 5

Mensagem por Hasse »

Boa tarde GVC.

Eu realmente não sabia que o "envelopinho" não permitia remeter anexos.

Já recebi os 2 arquivos, e como prometi, neste feriadão farei os testes.

Prometo divulgar os resultados e o trecho do código envolvido.

Mais uma vez, obrigado pela "mãozona" !!!!...
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Código de Barras 2 de 5

Mensagem por Hasse »

Conforme prometido ao Itamar, segue o trecho desenvolvido no meu aplicativo para gerar o código de barras:

Código: Selecionar todos

FOR n_conta = 1 TO n_linlin
   IF #CB# $ a_lin[1] .AND. n_conta == 1
       a_lin[1] := SUBS( a_lin[1], 01, LEN( a_lin[1] ) - 04 )
       c_numero := STRTRAN( SUBS( a_lin[1], 04, 07 ), ".", "" )
       n_posY   := oPrinter:posY
       c_num25  := ""
       FOR nn = 1 TO LEN(c_numero) step 2
           nn1     := VAL(SUBS( c_numero, nn, 02 ))
           c_num25 := c_num25 + CHR( nn1 + IF(nn1<=49,48,0) + IF(nn1>=50,142,0) )
       NEXT nn
       oPrinter:TextAtFont( 20, n_posY+20 , "("+c_num25+")", 'I2OF5TXT', 20, 06.5 )
       oPrinter:TextOut( " "+a_lin[n_conta],.T.)
   ELSE
       oPrinter:TextOut(a_lin[n_conta],.T.)
   ENDIF
NEXT n_conta
Veja o resultado deste código no Anexo no arquivo: "Planilha.pdf"

A minha aplicação ficou tão simples que decidi pesquisar um pouco mais e fornecer mais detalhes e opções para os interessados.

Seguem as instruções para gerar vários tipos de Código de Barras:

Para testar basta instalar as fontes que acompanham no Anexo, copiando elas para a pasta \Windows\Fontes.

Código: Selecionar todos

1-FREE3OF9.TTF
2-FRE3OF9X.TTF
3-I2OF5TXT.TTF
4-BARCODE FONT.TTF
5-BARCODING.TTF
6-CODE 128.TTF
7-C39HrP48DhTt.TTF
Compilar o TesteBarra.prg. O código é totalmente independente e funcional, e não necessita de qualquer LIB.

Código: Selecionar todos

******************************************************************************
***   SISTEMA.........: TESTEBARRA                                         ***
***   MÓDULO..........: TESTEBARRA.PRG                                     ***
***   PROGRAMADOR.....: IVO FRITZ HASSE                                    ***
***   DATA:...........: 30/10/2009              V 0.0                      ***
***   COMENTÁRIO:.....: Exemplo de impressão de Código de Barras.          ***
******************************************************************************
*
#define FORM_A4     9
*
FUNCTION MAIN()
*
Clear
n_quality := -1                        && Qualidade Draft
c_data    := DTOC( Date() )
c_nomeDoc := "Teste-"+SUBS(c_data,07,02)+SUBS(c_data,04,02)+LEFT(c_data,02)+"="+Time()
*
*START_BAR( "PDFCreator" ,c_nomeDoc )                  && Cria documento PDF e abre no Acrobat.
START_BAR( "PDF4U Adobe PDF Creator" ,c_nomeDoc )      && Cria documento PDF.
*START_BAR( , c_nomeDoc )                              && Envia para a impressora padrão.
*
RETURN( .T. )
*
*
*----------------------------------------------------------------------------------------
FUNCTION IMPRIME()
*
n_tamHorz := 06                  && Tamanho horizontal da barra.
n_tamVert := 30                  && Tamanho vertical da barra.
n_posHorz := 50                  && Coluna de início da barra.
*
*=== PRIMEIRA BARRA =====================================================================
*----- Veja instruções em "FREE3OF9.TXT" - funciona com letras e números ----------------
*  É necessário colocar o caracter ´*´ antes e depois dos dados.
*
c_dados := "Luiz Antonio 33445566778899"
n_posY  := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , "*"+c_dados+"*", 'Free 3 of 9 Extended', n_tamVert, n_tamHorz,,.T. )
oPrinter:TextOutAt( 1360, n_posY, "Formato 3 de 9 Extendido")
oPrinter:TextOutAt( 1360, n_posY+50, "N£meros e letras" )
oPrinter:TextOutAt( n_posHorz, n_posY+70, c_dados )
*
* ver abaixo a sintaxe da função TextAtFont() e TextOutAt() usadas acima.
*
*=== SEGUNDA BARRA ======================================================================
*----- Veja instruções em "FREE3OF9.TXT" - funciona somente com números -----------------
*  É necessário colocar o caracter ´*´ antes e depois dos dados.
*
c_numer := "00324090004321"
n_posY  := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , "*"+c_numer+"*", 'Free 3 of 9 Regular', n_tamVert, n_tamHorz,,.T. )
oPrinter:TextOutAt( 950, n_posY, "Formato ´3 de 9 Regular´ ")
oPrinter:TextOutAt( 950, n_posY+50, "S¢ n£meros" )
oPrinter:TextOutAt( n_posHorz, n_posY+70, c_numer )
*
*=== TERCEIRA BARRA =====================================================================
*----------------- Veja instruções em "I2OF5.txt" - funciona somente com números --------
*  É necessário o cálculo dos valores, em pares, e adicionar o caracter ´(´ antes do valor, 
*  e o caracter ´)´ ao final da string antes da impressão.
*
c_numer := "00324090004321"
n_posY  := oPrinter:posY + 200
c_num25 := ""
FOR nn = 1 TO LEN(c_numer) step 2
   nn1 := VAL(SUBS( c_numer, nn, 02 ))
   c_num25 := c_num25 + CHR( nn1 + IF(nn1<=49,48,0) + IF(nn1>=50,142,0) )
NEXT nn
oPrinter:TextAtFont( n_posHorz, n_posY+20 , "("+c_num25+")", 'I2OF5TXT', n_tamVert, n_tamHorz )
oPrinter:TextOutAt( 900, n_posY, "Formato ´2 de 5 Intercalado´")
oPrinter:TextOutAt( 900, n_posY+50, "S¢ n£meros" )
oPrinter:TextOutAt( n_posHorz+60, n_posY+80, c_numer )
*
*=== QUARTA BARRA =======================================================================
*---------------- Funciona com letras e números -----------------------------------------
*
c_numer := "Luiz Antonio 33445566778899"
n_posY  := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , c_numer, 'Barcode font', n_tamVert, n_tamHorz,,.T. )
oPrinter:TextOutAt( 1560, n_posY, "Formato ´Barcode´")
oPrinter:TextOutAt( 1560, n_posY+50, "N£meros e letras" )
oPrinter:TextOutAt( n_posHorz, n_posY+80, c_numer )
*
*=== QUINTA BARRA =======================================================================
*---------------- Funciona com letras e números -----------------------------------------
*
c_numer := "Luiz Antonio 33445566778899"
n_posY  := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , c_numer, 'Barcoding', n_tamVert, n_tamHorz,,.T. )
oPrinter:TextOutAt( 1500, n_posY, "Formato Barcoding" )
oPrinter:TextOutAt( 1500, n_posY+50, "N£meros e letras" )
oPrinter:TextOutAt( n_posHorz, n_posY+80, c_numer )
*
*=== SEXTA BARRA ========================================================================
*---------------- Funciona com letras e números -----------------------------------------
*
c_numer := "Luiz Antonio 33445566778899"
n_posY  := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , c_numer, 'Code 128', n_tamVert, n_tamHorz,,.T. )
oPrinter:TextOutAt( 1560, n_posY, "Formato ´Code 128´")
oPrinter:TextOutAt( 1560, n_posY+50, "N£meros e letras" )
oPrinter:TextOutAt( n_posHorz, n_posY+80, c_numer )
*
*=== SÉTIMA, OITAVA E NONA BARRAS =======================================================
*---------------- Funciona com letras e números -----------------------------------------
*
c_numer := "Luiz Antonio 33445566778899"
n_posY  := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , c_numer, 'C39HrP48DhTt', 30, 10,,.T. )
oPrinter:TextOutAt( 1000, n_posY, "Formato ´C39HrP48DhTt´")
oPrinter:TextOutAt( 1000, n_posY+50, "N£meros e letras" )
oPrinter:TextOutAt( n_posHorz, n_posY+80, c_numer )
*
n_posY   := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , c_numer, 'C39HrP48DhTt', 30, 5,,.T. )
oPrinter:TextOutAt( 1800, n_posY, "Formato ´C39HrP48DhTt´")
oPrinter:TextOutAt( 1800, n_posY+50, "N£meros e letras" )
oPrinter:TextOutAt( n_posHorz, n_posY+80, c_numer )
*
n_posY   := oPrinter:posY + 200
oPrinter:TextAtFont( n_posHorz, n_posY+10 , c_numer, 'C39HrP48DhTt', 20, 15,,.T. )
oPrinter:TextOutAt( 1000, n_posY, "Formato ´C39HrP48DhTt´")
oPrinter:TextOutAt( 1000, n_posY+50, "N£meros e letras" )
oPrinter:TextOutAt( n_posHorz, n_posY+80, c_numer )
*----------------------------------------------------------------------------------------
*
RETURN( .T. )
*
*
*----------------------------------------------------------------------------------------
FUNCTION START_BAR(cPrinter,cDoc)
   PUBLIC oPrinter:= WIN32PRN():New(cPrinter), aFonts, x, nColFixed, nColTTF, nColCharSet, aForms

   IF VALTYPE( n_quality ) == "N"
      IF n_quality <> 0
         oPrinter:SetPrintQuality( n_quality )        && qualidade da impressão.
      ENDIF
   ENDIF

   oPrinter:Landscape := .F.
   oPrinter:FormType  := FORM_A4
   oPrinter:Copies    := 1
   IF !oPrinter:Create()
      Alert("NÆo foi poss¡vel criar o Documento de ImpressÆo ;; O PDFCreator foi instalado ?")
   ELSE
      IF !oPrinter:startDoc(cDoc)
         Alert("In¡cio StartDoc() falhou" )
      ELSE
         *
         oPrinter:SetFont('Courier New')
         oPrinter:CharSet(255)         && Charset para imprimir barra colorida.
         *
         IMPRIME()                                    && Rotina de impressão dos
         *
         oPrinter:EndDoc()
         *
      ENDIF
      *
      oPrinter:Destroy()
      *
   ENDIF
   *
RETURN
*
*
/*
oPrinter:textAtFont([<nPosX>]      , ;
                    [<nPosY>]      , ;
                     <cString>     , ;
                    [<cFontName>]  , ;
                    [<nPointSize>] , ;
                    [<nFontWidth>] , ;
                    [<nFontWeight>], ;
                    [<lUnderLine>] , ;
                    [<lItalic>]    , ;
                    [<lNewLine>]   , ;
                    [<lUpdatePosX>], ;
                    [<nTextColor>] , ;
                    [<nTextAlign>]   ) --> lSuccess

oPrinter:textOutAt([<nPosX>]      , ;
                   [<nPosY>]      , ;
                    <cString>     , ;
                   [<lNewLine>]   , ;
                   [<lUpdatePosX>], ;
                   [<nTextAlign>]   ) --> lSuccess
*/
Para criar PDF: (abrir no Acrobat) é necessária a instalação do PDFCreator, PDF4free, ou outro semelhante.

Conforme a necessidade, basta comentar e descomentar as linhas abaixo que se encontam bem no início do prg. Somente uma das 3 opções deve permanecer ativa:
"START_BAR( , c_string )"
"START_BAR( "PDFCreator" ,c_string )"
"START_BAR( "PDF4U Adobe PDF Creator" ,c_nomeDoc )"

O prg está bem documentado nos seus diversos trechos, e assim, mesmo para os iniciantes, será bem fácil eliminar as barras não desejadas.

De qualquer forma, podemos observar que é muito fácil utilizar os recursos da Classe Win32prn() para criar vários tipos de Códigos de Barras desde que tenhamos as fontes TTF delas.

Ao colega Itamar: As fontes que você me enviou não funcionaram, certamente porque está faltando alguma instrução, pois algumas são cheias de truques, como aquela 2OF5TXT.TTF. De qualquer forma, receba os meus agradecimentos.

1-Observar que o valor ´nPointSize´ é diretamente proporcional ao tamanho da barra.

2-O valor ´nFontWidth´ é inversamente proporcional ao tamanho da barra, e valores decimais não são interpretados.

3-Cada tipo de Código de Barras tem a sua própria proporção ideal entre os valores de ´nPointSize´ e ´nFontWidth´. Veja exemplo do 'C39HrP48DhTt' nas três últimas barras.

4-Mesmo os tipos que funcionam com letra e números, eles não aceitam caracteres acentuados e caracteres especiais. Li, em alguns sites, que há tipos de Código de Barras que aceitam alguns caracteres especiais e acentuados.

Vejam mais detalhes interessantes:
http://www.scb.com.br/secundarias/tiposdecodigos.htm

http://pt.wikipedia.org/wiki/C%C3%B3digo_de_barras
Anexos
Planilha.pdf
(10.01 KiB) Baixado 423 vezes
Fontes.zip
(34.01 KiB) Baixado 739 vezes
Editado pela última vez por Hasse em 05 Nov 2009 07:21, em um total de 1 vez.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Código de Barras 2 de 5

Mensagem por gvc »

O Itamar tb pediu para vc postar o resultado?
É bom saber que pensamos da mesma forma.

Obrigado por postar, assim podemos ajudar outros colegas que precisem da mesma solução.
Eu já uso o FW para montar o boleto, mas conhecimento não ocupa espaço Sr. Spock) e então vou aproveitar a informação.

Só para ser chato mesmo, vc pode montar os boletos como imagem fixa e imprimir só o texto variável.
Eu uso algo assim para imprimir informes de rendimentos, pessoa física e juridica.

Boa sorte. Fico muito feliz em ter ajudado.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Código de Barras 2 de 5

Mensagem por Hasse »

Boa noite CVG.

Devo-te um pedido de desculpas, pois confundi o Itamar contigo. Não que o Itamar não mereça os agradecimentos, mas foi você que me enviou aqueles fontes que não funcionaram. Penso que a intenção é que vale.

Quanto a criar uma imagem e depois inserir o texto e código de barras, eu ainda não testei, mas acredito que funcione, pois a Classe Win32prn() cria imagens.

E quando há sobreposição, dependendo da transparência, a primeira desaparece sob a segunda. Idem para imagens.

Então não vejo qualquer motivo para não funcionar.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Código de Barras 2 de 5

Mensagem por gvc »

Quanto a troca de nomes, imaginei isso, mas a brincadeira ficou irresistível. Mas não se preocupe. O que vale para mim é que vc conseguiu resolver o problema.
, mas foi você que me enviou aqueles fontes que não funcionaram.
Não deu para resistir novamente. (eh. eh. eh.)

Quanto a imagem, como já falei, eu uso para informes de rendimentos. Funciona perfeitamente.
Quanto ao boleto pré-impresso, acho que vc ganharia tempo e tamanho na aplicação colocando a imagem.
Eu ainda estou segurando essa solução, mas não vai dar para esperar muito tempo para implementar, mas em FWH.

Mas se vc implementar em [x]Harbour, por favor, poste a solução para os colegas aqui do forum.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Responder