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()
Excelente!
ResponderBorrarProbare en mis aplicaciones