Código de barra

Pessoal, alguém ai conhece algum pacote free para geração de código de barra??! Preciso gerar os códigos como imagens e salvá-las… Para posteriormente inseri-las em JPanels, etc, para impressão em conjunto com outros dados :slight_smile:

Obrigado!

Você vai imprimir um JPanel? Em vez disso use o tal do JasperReports/iReport para imprimir tudo que você quer (incluindo códigos de barras).

Na verdade eu não vou imprimir o JPanel, vou apenas representar um cartão tamanho padrão (igual cartão de crédito) com foto, nome e um código de barras… O Editor gráfico é para possibilitar a criação de layouts para os cartões, gerando assim um arquivo com o tipo e as coordenadas de cada entidade…

Alguma dica??!

Obrigado!

Hum, na verdade desenhar códigos de barras é relativamente simples, se você for usar o código 3 de 9 (letras e dígitos) ou 2 de 5 (apenas dígitos), já que você só precisa desenhar barras de duas larguras - “larga” e “estreita” e de duas cores - “preta” e “branca”, e combinar essas barras segundo a definição.

http://www.spatula.net/proc/barcode/code25.src
http://www.spatula.net/proc/barcode/i25.src
http://www.spatula.net/proc/barcode/code39.src

Eu sei que existem fontes TrueType com códigos de barras, mas não recomendaria seu uso porque é necessário instalá-las na máquina do cliente (por exemplo, no caso do Windows em c:\windows\fonts), ou usar um método complicado de carregá-las a partir de arquivos.

Muito obrigado! Agora preciso só avaliar qual sistema de código de barras devo utilizar aqui… ehehe

Estrelas para vc!

Ola a todos!

Vou aproveitar este tópico !

Preciso imprimir na tela um código de barras, mas é o padrão PDF417 (bidimensional). A imagem dele é esta:

Tudo que eu achei até agora, inclusive aqui no GUJ faz referência aos padrões “comuns” (code 128, codabar, etc.)

Alguem tem alguma dica, ou um caminho das pedras?

Valeu
Babol

Tem um projeto de um camarada chamado pdf417lib no sourceforge já usei para codificação de barras em postscript. Dê uma olhada porque tá muito fácil a big class do cara.
Faça um algoritmo para renderizar (java 2D) através do código gerado por ela.

[quote=hashcode]Tem um projeto de um camarada chamado pdf417lib no sourceforge já usei para codificação de barras em postscript. Dê uma olhada porque tá muito fácil a big class do cara.
Faça um algoritmo para renderizar (java 2D) através do código gerado por ela.
[/quote]

Caro hashcode,

Durante minha busca eu até vi este projeto, mas aqui no trabalho eu não consigo baixar .zip (parece brincadeira…), então não pesquisei a fundo. Somente hoje eu consegui este zip, mas independente disso, obrigado pela dica, esta sendo super útil

Como vc falou, a classe é “big”, mas nao to entendendo a saída do programa. Se faço assim: java Pdf417lib teste.txt teste ele cria um arquivo teste.txt desta forma:
/Times findfont
12 scalefont setfont
100 80 moveto
(A PDF417 example.)show
stroke
100 100 translate
43.0 18.0 scale
86 12 1 [86 0 0 -12 0 12]{<
00AB8AC7C2B0E2A3F0175B
00AB857BC3C960ACF0175B
00AB9507C540EAF0F0175B
00ABA820C9EFA50830175B
00AB947DC08D651DF0175B
00AB828F5F94614130175B
00ABAC63DD93EB11F0175B
00AB8168D983650210175B
00ABAC83D8CC60B170175B
00ABAE7CC613AB9CF0175B
00AB963DD7C2E58DF0175B
00AB9760D770E05CD0175B>}image
showpage

Quando vc diz que eu preciso renderizar, seria esta informação impressa?

Obrigado pela ajuda
Babol

[quote=Babol][quote=hashcode]Tem um projeto de um camarada chamado pdf417lib no sourceforge já usei para codificação de barras em postscript. Dê uma olhada porque tá muito fácil a big class do cara.
Faça um algoritmo para renderizar (java 2D) através do código gerado por ela.
[/quote]

Caro hashcode,

Durante minha busca eu até vi este projeto, mas aqui no trabalho eu não consigo baixar .zip (parece brincadeira…), então não pesquisei a fundo. Somente hoje eu consegui este zip, mas independente disso, obrigado pela dica, esta sendo super útil

Como vc falou, a classe é “big”, mas nao to entendendo a saída do programa. Se faço assim: java Pdf417lib teste.txt teste ele cria um arquivo teste.txt desta forma:
/Times findfont
12 scalefont setfont
100 80 moveto
(A PDF417 example.)show
stroke
100 100 translate
43.0 18.0 scale
86 12 1 [86 0 0 -12 0 12]{<
00AB8AC7C2B0E2A3F0175B
00AB857BC3C960ACF0175B
00AB9507C540EAF0F0175B
00ABA820C9EFA50830175B
00AB947DC08D651DF0175B
00AB828F5F94614130175B
00ABAC63DD93EB11F0175B
00AB8168D983650210175B
00ABAC83D8CC60B170175B
00ABAE7CC613AB9CF0175B
00AB963DD7C2E58DF0175B
00AB9760D770E05CD0175B>}image
showpage

Quando vc diz que eu preciso renderizar, seria esta informação impressa?

Obrigado pela ajuda
Babol[/quote]

Cara, desconsidere esta mensagem, descobri como faz. Tem que mandar no formato postscript…

Agora vou partir para a segunda fase da sua sugestão (e a mais dificil). Renderizar a imagem usando 2D (Não faço nem ideia de como fazer isso, mas vamos la!).

Valeu pela força!
Babol

Divirta-se com
e668. Creating a Buffered Image from an Array of Color-Indexed Pixel Values
http://javaalmanac.com/egs/java.awt.image/Mandelbrot2.html
Pode-se fazer também um JPG ou TIFF com esse tipo de dados bitmap sem precisar codificar em demasia http://schmidt.devlib.org/java/image-io-libraries.html

Obs.: Quando vc conseguir fazer esse mangue aí manda pro cara do pdf417lib, se for open source né!! :smiley:

[quote=thingol]Hum, na verdade desenhar códigos de barras é relativamente simples, se você for usar o código 3 de 9 (letras e dígitos) ou 2 de 5 (apenas dígitos), já que você só precisa desenhar barras de duas larguras - “larga” e “estreita” e de duas cores - “preta” e “branca”, e combinar essas barras segundo a definição.

http://www.spatula.net/proc/barcode/code25.src
http://www.spatula.net/proc/barcode/i25.src
http://www.spatula.net/proc/barcode/code39.src

Eu sei que existem fontes TrueType com códigos de barras, mas não recomendaria seu uso porque é necessário instalá-las na máquina do cliente (por exemplo, no caso do Windows em c:\windows\fonts), ou usar um método complicado de carregá-las a partir de arquivos.[/quote]

Xi cara não é o caso de pdf417 ela é de leitura bi (2D) e não linar como as outras.

PostScript é uma linguagem de programação que normalmente é usada para enviar comandos para impressoras. Embora não esteja com o guia de referência do PostScript aqui, dá a impressão que esses códigos hexadecimais representam um bitmap, que pode ser plotado com Java2D ou a API de sua preferência. Por exemplo, cada linha está começando com 00AB, ou seja, em binário daria 0000.0000.0000.0000.1010.1011 - se os bits 0 forem branco e 1 forem preto, então dá para você começar a plotar os pixels.

Caros hashcode e thingol
Encontrei um exemplo no site da sun onde o ele exibe, via applet, um programa que exibe somente imagens no formato .ps. (seguindo sugestão do hashcode)

É claro que todos os exemplos citados imprimem exceto o que é criado pelo fonte do pdf417lib.
O exemplo eu obtive neste site:
http://java.sun.com/products/java-media/2D/samples/index.html
Baixei o zip do "PostscriptViewer Demo" mas na hora de executar aparece o erro:

Lexical error at line 8, column 27. Encountered: "<" (60), after : ""

Alguem tem alguma dica ou saida para isso?

Valeu!

Taca o ps aqui para darmos uma olhada.

Aqui esta o arquivo

Aqui esta o arquivo criado pelo programada pdf417lib.

Aqui esta o .ps que nao funciona no programa. Este foi criado pelo pdf417lib (arquivos.ps)

O outro abre sem problemas (tiger.ps)

to tentando colocar os ps mas nao to conseguindo…

to tentando inserir, mas nao ta indo…
vamos ver agora
O que nao funciona é o arquivos.ps. Este foi gerado pelo pdf417lib

Dei uma olhada no seu arquivo e vi que ele está correto.
Acho que temos aí um problema do analizador lexíco.
Tente quebra uma linha depois da { e antes … o que eu quero dizer é isso :smiley:


stroke
100 100 translate
43.0 18.0 scale
86 12 1 [86 0 0 -12 0 12]{
<
00AB8AC7C2B0E2A3F0175B
00AB857BC3BBA0ACF0175B
00AB9507C869EAF0F0175B
00ABA820CD73E50830175B
00AB947DCEC6E51DF0175B
00AB828F49D0E14130175B
00ABAC63DE8C6B11F0175B
00AB8168D983650210175B
00ABAC83C81960B170175B
00ABAE7CCF5F2B9CF0175B
00AB963DC159E58DF0175B
00AB9760DB20E05CD0175B
>
}image
showpage

Sacou?! :smiley: Sinal de maior e menor sozinhos em uma linha.