Gerando um código de barras postal(EUA): Difference between revisions
No edit summary |
mNo edit summary |
||
Line 13: | Line 13: | ||
Para realocar a posição do código de barras, transforme o código em um grupo, assim você poderá move-lo para qualquer lugar que desejar (você pode usar a janela de propriedades também). | Para realocar a posição do código de barras, transforme o código em um grupo, assim você poderá move-lo para qualquer lugar que desejar (você pode usar a janela de propriedades também). | ||
= | =postnet.py= | ||
<pre> | <pre> | ||
#!/usr/bin/env python | #!/usr/bin/env python |
Revision as of 18:19, 28 February 2006
Scripts para iniciantes • Scripts de extensão/PyQt • Questões sobre Py • Plugins • Outros |
Versão em inglês.
Básico
Esse script vai gerar um código de barra postal para o código postal que você fornecer (Serviço de Postágem dos Estados Unidos - USPS). Ele usa o Tkinter para o requisitar um valor. Você pode fornecer números e incluir hifens se desejar, já que qualquer caractere não numérico será ignorado.
O código de barra é um conjunto de linhas criadas de acordo com as especificações do USPS. Esse script criará o código na vertical, ou seja, deixando as linhas na horizontal, dispostas logo no início da página, na posição X = 130 e Y = 130 (em pontos) -- veja as linhas com os comentários Início do X e Início do Y.
Para realocar a posição do código de barras, transforme o código em um grupo, assim você poderá move-lo para qualquer lugar que desejar (você pode usar a janela de propriedades também).
postnet.py
#!/usr/bin/env python # Arquivo: postnet.py # criado originalmente 2006.02.26 - Gregory Pittman import scribus import Tkinter class ImageDialog(Tkinter.Toplevel): def __init__(self, parent): Tkinter.Toplevel.__init__(self, parent, bg="#bbbbff") Tkinter.Label(self, text='Forneça o Código Postal e clique no OK',bg="#bbbbff").grid(row=0,columnspan=6) self.e = Tkinter.Entry(self) self.e.grid(row=1,columnspan=6) b = Tkinter.Button(self, text='OK', bg="#55ff88", command=self.ok) b.grid(row=2,columnspan=6) self.protocol("WM_DELETE_WINDOW", self.quit) def ok(self): S = self.e.get() m = Tkinter.Message(root, text=self.e.get()+'\nClose this\n window') m.grid(row=0, columnspan=4) postcode = ['llsss','sssll','sslsl','sslls','slssl','slsls','sllss','lsssl','lssls','lslss'] a = 1.44 #largura da linha b="Black" #cor da linha relx=130 #Início do X rely=130 #Início do Y if scribus.haveDoc(): scribus.setRedraw(1) scribus.setUnit(0) d = scribus.createLine(relx,rely,relx+9,rely,) #Linha longa scribus.setLineWidth(a, d) scribus.setLineColor(b, d) scribus.setFillColor(b, d) rely = rely + 3.4 for x in S[0:]: if x.isdigit(): xnum = int(x) code = postcode[xnum] for y in code[0:]: if y == 'l': d = scribus.createLine(relx,rely,relx+9,rely,) #Linha longa scribus.setLineWidth(a, d) scribus.setLineColor(b, d) scribus.setFillColor(b, d) rely = rely + 3.4 elif y == 's': d = scribus.createLine(relx,rely,relx+3.6,rely,) #Linha curta scribus.setLineWidth(a, d) scribus.setLineColor(b, d) scribus.setFillColor(b, d) rely = rely + 3.4 d = scribus.createLine(relx,rely,relx+9,rely,) #Linha longa scribus.setLineWidth(a, d) scribus.setLineColor(b, d) scribus.setFillColor(b, d) redrawAll() self.Tkinter.Toplevel.destroy() root = Tkinter.Tk() root.update() z = ImageDialog(root) root.wait_window(z)