Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Tu marca aqui mismo

Llega a miles de personas.

Publicidad

Mostrando las entradas con la etiqueta pdf417. Mostrar todas las entradas
Mostrando las entradas con la etiqueta pdf417. Mostrar todas las entradas

viernes, 10 de junio de 2016

Generación de Codigos de Barra PDF417 con Python y la libreria Elaphe

Códigos de Barra PDF 417 con Elaphe y Odoo



Instalamos la libreia elaphe la cual sera nuestra herramienta principal en este ejercicio:

sudo apt-get install python-elaphe

Si utilizamos el gestor de librerias Pip:

sudo pip install elaphe

Como cualquier otra libreria necesitamos importarla en nuestro codigo:
>>> from elaphe import barcode

Un ejemplo completo utilizando elaphe y codigo de barras pdf 417:

from elaphe import barcode
bc = barcode('pdf417', "Bienvenidos a poncesoft.blogspot.com", options=dict(eclevel=2, compact=True, columns=2, rows=10), margin=1, scale=2)
bc.save('test.png')

El primer parĆ”metro de la función barcode es el tipo de código de barras a generar, el segundo es la cadena que convertiremos a  imagen utilizando código de barras

Otros códigos de barra que podemos implementar con la librerĆ­a elaphe son:

from elaphe import barcode
barcode('qrcode', 'Hello Barcode Writer In Pure PostScript.', options=dict(version=9, eclevel='M'), margin=10, data_mode='8bits').show()
barcode('code128', '^104^102Count^0990123456789^101!', options=dict(includetext=True), scale=2, margin=1).show()
barcode('pdf417', '^453^178^121^239', options=dict(columns=2, rows=10), margin=1, scale=2).show()
barcode('upc', '78858101497', options=dict(includetext=True), scale=2, margin=1).show()
barcode('royalmail', 'LE28HS9Z', options=dict(includetext=False), scale=2, margin=1).show()
barcode('datamatrix', '^142^164^186', options=dict(columns=32, rows=32), margin=1, scale=2.0).show()
barcode('code11', '0123456789', options=dict(includetext=True), scale=2, margin=1).show()
barcode('code25', '0123456789', options=dict(includetext=False, includecheck=False), scale=2, margin=1).show()
barcode('code39', 'THIS IS CODE39', options=dict(includetext=True), scale=2, margin=1).show()
barcode('code93', 'THIS IS CODE93', options=dict(includetext=True), scale=2, margin=1).show()
barcode('japanpost', '1231FZ13XHS', options=dict(includetext=False), scale=2, margin=1).show()
barcode('azteccode', '00100111001000000101001101111000010100111100101000000110', margin=1).show()
barcode('auspost', '5956439111ABA 9', options=dict(includetext=False), scale=2, margin=1).show()
barcode('ean13', '977147396801', options=dict(includetext=True), scale=2, margin=1).show()
barcode('interleaved2of5', '24012345678905', options=dict(includetext=True), scale=2, margin=1).show()
barcode('raw', '331132131313411122131311333213114131131221323', options=dict(includetext=True), scale=2, margin=1).show()
barcode('kix', '1231FZ13XHS', options=dict(includetext=False), scale=2, margin=1).show()
barcode('postnet', '012345', options=dict(includetext=True), scale=2, margin=1).show()
barcode('pharmacode', '117480', options=dict(includetext=True), scale=2, margin=1).show()
barcode('plessey', '012345ABCD', options=dict(includetext=True), scale=2, margin=1).show()
barcode('symbol', 'fimd', options=dict(includetext=True), scale=2, margin=1).show()
barcode('onecode', '0123456709498765432101234567891', options=dict(includetext=True), scale=2, margin=1).show()
barcode('maxicode', '^059^042^041^059^040^03001^02996152382802^029840^029001^0291Z00004951^029UPSN^02906X610^029159^0291234567^0291^0471^029^029Y^029634 ALPHA DR^029PITTSBURGH^029PA^030^062^004^063', options=dict(mode=2), margin=1, scale=4).show()
barcode('msi', '0123456789', options=dict(includetext=True), scale=2, margin=1).show()
barcode('rss14', '24012345678905', options=dict(linkage=True, includetext=True), scale=2, margin=1).show()
barcode('rationalizedCodabar', 'A012345

Implementación con Odoo

Para nuestros módulos bÔsicamente es lo mismo, pero nos apoyaremos de otras librerias que nos ayudaran a generar archivos en la partición temporal del sistema, primero importamos:

from elaphe import barcode
import os
import base64
import hashlib
import tempfile

Un ejemplo es el siguiente:
# Instanciamos el metodo principal barcode
bc = barcode('pdf417', "Bienvenidos a poncesoft.blogspot.com", options=dict(eclevel=2, compact=False, columns=2, rows=10), margin=1, scale=2)
# Generamos un nombre y ruta temporal
fname=tempfile.NamedTemporaryFile(suffix='.png',delete=False)
# Asigamos el nombre temporal a una variable
temporal_name = fname.name
# Guardamos nuestra imagen generada con elaphe y la ruta temporal
bc.save(fname.name)
# Podemos manipular la imagen ya generada
f = open(fname.name, "r")
data = f.read()
f.close()