The Lua language

LuaBarcode

Geração de códigos de barra Interleaved 2 of 5

o que é · introdução · funções · download · English


Conteúdo

O que é o LuaBarcode?

O LuaBarcode é uma biblioteca de extensão da linguagem Lua (versões 4.0 e 5.0 ) que pode ser utilizada para gerar códigos de barra do tipo Interleaved 2 of 5.  Estes códigos de barra têm diversos usos como catálogo de produtos ou pagamento de títulos bancários.

A biblioteca pode ser usada por qualquer aplicação Lua onde seja necessário criar esse código de barras.  A biblioteca foi testada com sucesso nas plataformas Windows e Linux.

A biblioteca está disponível nos mesmos termos que a linguagem Lua, isto é, pode ser utilizada gratuitamente para quaisquer fins, comerciais inclusive.

Direitos autorais © 2000, PUC-Rio. Todos os direitos reservados.
Autores: Thiago Conde, Mariana Rego Monteiro
Contato: barcode@tcs.eng.br
Agradecimentos a Roberto Ierusalimschy por ajudar no desenvolvimento desta biblioteca e a Luis Henrique de Figueiredo por compatibilizar o código com Lua 5.0.

Inicializando a biblioteca

Para que as funções da biblioteca estejam disponíveis para o script Lua você deve utilizar um interpretador que esteja compilado com a biblioteca LuaBarcode.  Caso não queira ter o trabalho de compilar, uma versão pré-compilada (em Lua 4.0) está disponível abaixo.

Caso queira compilar seu próprio interpretador, você precisar chamar a função lua_barcodelibopen para inicializar a biblioteca; esta função registra as funções da biblioteca no estado Lua desejado.


Veja alguns exemplos.

Download

O código fonte da biblioteca e interpretador Lua pré-compilado podem ser baixados abaixo:

LuaBarcode para Lua 5.0:
luabarcode5.tar.gz (8 kb)

LuaBarcode para Lua 4.0:
barcodelib.tar.gz (15 kb)
barcodelib.zip (15 kb)

Interpretador Lua 4.0 com a biblioteca:
luabarcode.zip (112 kb)

Interpretador Lua pré-compilado com a biblioteca:
luabarcode-static.zip (windows - 155 kb)

Compilação

LuaBarcode necessita da biblioteca GD versão 1.8.3, que pode ser baixada de http://www.boutell.com/gd/.  A compilação da biblioteca GD é bastante simples,  porém necessita das bibliotecas libpng, libjpeg e zlib.  Se você ainda não tem a GD compilada, siga os passos abaixo.

Comece a compilação pela zlib, depois libpng e então libjpeg.  A biblioteca GD deve ser a última já que ela depende das outras três.  A compilação no Linux é bastante simples e o ./configure && make deve funcionar sem problemas.  A compilação no Windows é mais complicada, especialmente para a libjpeg.  Se você tem o Visual Studio, recomendo que você utilize o nmake, já que um arquivo makefile.vc é fornecido.

Se as explicações acima foram confusas ou te deram preguiça, experimente baixar a biblioteca pré-compilada da seção de Downloads abaixo.

Referência das funções

As funções da biblioteca estão descritas abaixo.

barcode("numero")

Retorna um objeto contendo uma imagem do número fornecido.  Em caso de erro nil é retornado seguido de uma string descrevendo o erro.  Como descrito na especificação do I2of5, o número fornecido deve ter uma quantidade par de dígitos.  Caso o número tenha uma quantidade de dígitos ímpar um zero será adicionado no final.

Exemplo:

etiqueta = barcode("0123456789")

savebarcode(barcode, "formato", "nome")

Salva um objeto retornado pela função barcode no formato e arquivo especificado.  Os formatos disponíveis são "jpeg" e "png".  Imagens gif não estão disponíveis porque na época havia uma patente da Unisys que impedia seu uso.  Em caso de sucesso a função retorna a string "OK"; em caso de erro nil é retornado seguido de uma string descrevendo o erro.

Após chamar savebarcode() o objeto fornecido não estará mais disponível pois os recursos utilizados são liberados pela função.

Exemplo:

mybarcode = barcode("0123456789")
savebarcode(etiqueta, "png", "code.png")

readbarcode("filename", "format")

Lê uma imagem criada pela função savebarcode() e retorna uma string com o número codificado na imagem.  Em caso erro a função retorna nil seguido de uma string com a descrição do erro.

Exemplo:

etiqueta = barcode("0123456789")
savebarcode(etiqueta, "png", "code.png")
codigo = readbarcode("code.png", "png")

O que é · Funções · Download · English