Gerando um código de barras postal(EUA)

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=
 * 1) !/usr/bin/env python


 * 1) Arquivo: postnet.py
 * 2) 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)