2011-01-14 13 views
5

"Tekerleği Etiketler" i python'dan yazdırmam gerekiyor. Tekerlek etiketlerinde resim, çizgi ve metin bulunur.Python'da Baskı Grafiği

Python öğreticisi, görüntü lib'iyle postscript dosyaları oluşturma hakkında iki paragrafa sahiptir. Okuduktan sonra hala verileri nasıl belirleyeceğimi bilmiyorum. Bazılarının resimlerin, metnin ve çizgilerin nasıl düzenleneceğine dair örnekler olabileceğini umuyordum?

Yardımlarınız için teşekkür ederiz.

cevap

3

http://effbot.org/imagingbook/psdraw.htm

notuna bakın o:

  1. PSDraw modülü aktif 2005 yılından beri muhafaza edilmiş görünmüyor; Çabaların çoğunun PDF formatını desteklemeye yönlendirildiğini tahmin ediyorum. Bunun yerine pypdf kullanarak daha mutlu olabilirsiniz;

  2. o '# FIXME: eksik' gibi yorumlar etti

  3. o sayfa boyutunu ayarlamak için herhangi bir yöntem var görünmemektedir kaynakta 'henüz uygulanmadı' ve - Hatırladığım kadarıyla o varsayılan demektir A4'ün (8.26 x 11.69 inç)

  4. tüm ölçümleri, inç başına 72 noktada, noktalardadır. - Eğer başlamak için hazır

    import Image 
    import PSDraw 
    
    # fns for measurement conversion  
    PTS = lambda x: 1.00 * x # points 
    INS = lambda x: 72.00 * x # inches-to-points 
    CMS = lambda x: 28.35 * x # centimeters-to-points 
    
    outputFile = 'myfilename.ps' 
    outputFileTitle = 'Wheel Tag 36147' 
    
    myf = open(outputFile,'w') 
    ps = PSDraw.PSDraw(myf) 
    ps.begin_document(outputFileTitle) 
    

    ps artık belirtilen dosyaya PostScript yazacak bir PSDraw nesnesidir ve belge başlığı yazılmıştır:

Sen böyle bir şey yapmak gerekecektir çizim eşyaları.

ps.setfont("Helvetica", PTS(12)) # PostScript fonts only - 
            # must be one which your printer has available 
loc = (  # where to put the text? 
    INS(1), # horizontal value - I do not know whether it is left- or middle-aligned 
    INS(3.25) # vertical value - I do not know whether it is top- or bottom-aligned 
) 
ps.text(loc, "Here is some text") 

çizgi eklemek için:

im = Image.open("myimage.jpg") 
box = (  # bounding-box for positioning on page 
    INS(1), # left 
    INS(1), # top 
    INS(3), # right 
    INS(3)  # bottom 
) 
dpi = 300  # desired on-page resolution 
ps.image(box, im, dpi) 

metin eklemek için:

resim eklemek için

lineFrom = (INS(4), INS(1)) 
lineTo = (INS(4), INS(9)) 
ps.line(lineFrom, lineTo) 

... ve herhangi bir seçenek göremiyorum strok ağırlığını değiştirmek için.

ps.end_document() 
myf.close() 

Düzenleme:: felcin ağırlıkları ayarlama konusunda okuma biraz yapıyordu ve ben farklı modül koştu, PsFile İşiniz bittiğinde

, sizin gibi dosyayı kapatmak zorunda : http://seehuhn.de/pages/psfile#sec:2.0.0 Modülün kendisi oldukça az görünüyor - çok fazla ham postscript yazıyor - ama sahnelerin ardında neler olup bittiğine dair daha iyi bir fikir vermelisiniz.

1

Bu tür bir görev için açık kaynak kitaplığı Reportlab öneriyoruz.

Doğrudan PDF biçiminde kullanmak ve çıktı almak çok basittir.resmi belgelerinden

Çok basit bir örnek: sürece PIL yüklü olarak

from reportlab.pdfgen import canvas 
def hello(c): 
    c.drawString(100,100,"Hello World") 
c = canvas.Canvas("hello.pdf") 
hello(c) 
c.showPage() 
c.save() 

, sayfanızın resim eklemek için de çok kolaydır:

canvas.drawImage(self, image, x,y, width=None,height=None,mask=None) 

nerede "görüntü" PIL Image nesnesi veya kullanmak istediğiniz görüntünün dosya adıdır.

documentation'da da birçok örnek.