[Python-es] Codigo Barra - Reportlab
ariel illanes
illanesariel en gmail.com
Mar Sep 25 13:47:17 CEST 2007
Hola gente : He echo un pequeño programita en python que me genera el codigo
de barra a partir de un diccionario que tengo en la misma aplicacion
ejemplos:
from reportlab.extensions.barcode import code93
from reportlab.pdfgen.canvas import Canvas
from reportlab.platypus import Frame
from reportlab.lib.units import mm
def run():
_patterns = {
'0' : ('AcAaAb', 0), '1' : ('AaAbAc', 1), '2' : ('AaAcAb', 2),
'3' : ('AaAdAa', 3), '4' : ('AbAaAc', 4), '5' : ('AbAbAb', 5),
'6' : ('AbAcAa', 6), '7' : ('AaAaAd', 7), '8' : ('AcAbAa', 8),
'9' : ('AdAaAa', 9), 'A' : ('BaAaAc', 10), 'B' : ('BaAbAb', 11),
'C' : ('BaAcAa', 12), 'D' : ('BbAaAb', 13), 'E' : ('BbAbAa', 14),
'F' : ('BcAaAa', 15), 'G' : ('AaBaAc', 16), 'H' : ('AaBbAb', 17),
'I' : ('AaBcAa', 18), 'J' : ('AbBaAb', 19), 'K' : ('AcBaAa', 20),
'L' : ('AaAaBc', 21), 'M' : ('AaAbBb', 22), 'N' : ('AaAcBa', 23),
'O' : ('AbAaBb', 24), 'P' : ('AcAaBa', 25), 'Q' : ('BaBaAb', 26),
'R' : ('BaBbAa', 27), 'S' : ('BaAaBb', 28), 'T' : ('BaAbBa', 29),
'U' : ('BbAaBa', 30), 'V' : ('BbBaAa', 31), 'W' : ('AaBaBb', 32),
'X' : ('AaBbBa', 33), 'Y' : ('AbBaBa', 34), 'Z' : ('AbCaAa', 35),
'-' : ('AbAaCa', 36), '.' : ('CaAaAb', 37), ' ' : ('CaAbAa', 38),
'$' : ('CbAaAa', 39), '/' : ('AaBaCa', 40), '+' : ('AaCaBa', 41),
'%' : ('BaAaCa', 42), '#' : ('AbAbBa', 43), '!' : ('CaBaAa', 44),
'=' : ('CaAaBa', 45), '&' : ('AbBbAa', 46),
'start' : ('AaAaDa', -1), 'stop' : ('AaAaDaA', -2)
}
#string=_patterns["1"]
c = Canvas("barcode.pdf")
#st=code93.MultiWidthBarcode(string)
code=str(_patterns["2"])
story = []
story.append(code93.Standard93(str(code)
f = Frame(10*mm, 10*mm, 190*mm, 277*mm, showBoundary=0)
f.addFromList(story, c)
c.save()
if __name__=='__main__':
run()
Si prueban y cambian el valor de code=str(_patterns[x])
por algun otro valor del diccionario veran un archivo pdf con distinto
codigo de barra.
Ahora en el diccionario no veo el 22(la numeracion va de 0 a 9)intente
genera de la siguiente forma:
code=str(_patterns["2"])+str(_patterns["2"])
pero me da error
Alguien me puede decir como seguir para poder generar codigo de barra a
partir de un determinado numero que le paso con python.
Más información sobre la lista de distribución Python-es