2012-11-08 3 views
4

Windows 시스템에서 python, wxpython 및 sqlite를 사용하십시오. 배경 위에 이미지가 있고 사람/텍스트 위에 이름이있는 인증서/디플로마/카드를 인쇄하려고합니다. 프린터에 이미지를 파이썬으로 보내십시오.

나는 기본 단계가 Pywin32에서 win32print를 사용하여 텍스트를 인쇄하지만 알고 :

  1. 나는 이미지를 추가하고 배경으로 설정하는 방법을 잘 모릅니다.

    while ..... 
    
        ..... 
    
        # Query sqlite rows and collumn name and set the self.text for each certificate 
    
        ..... 
    
        # Now send to printer 
    
        DC = win32ui.CreateDC() 
        DC.CreatePrinterDC(win32print.GetDefaultPrinter()) 
    
        DC.SetMapMode(win32con.MM_TWIPS) 
    
        DC.StartDoc("Certificates Job") 
    
        DC.StartPage() 
    
        ux = 1000 
        uy = -1000 
        lx = 5500 
        ly = -55000 
    
        DC.DrawText(self.text, (ux, uy, lx, ly),win32con.DT_LEFT) 
    
        DC.EndPage() 
        DC.EndDoc() 
    

    이 프린터 코드는 체크 조건에 따라 sqlite 데이터베이스에서 각 사람 이름을 호출하는 while 회 돌이 안에 있습니다.

  2. 모든 데이터베이스 이름이 같은 페이지에 인쇄되었습니다. 프린터가 데이터베이스에서 이름 당 1 페이지를 뱉어 내도록 명령하려면 어떻게합니까?

  3. 프린터 (종이 및/또는 pdf)를 다루는 더 간단한 방법이나 모듈을 환영합니다.

답변

2

나는 WxPython으로 실현 될 수 있다고 생각하지만, 당신을 도울만큼 충분하지 않습니다.

그러나 Python Image Library으로 살펴보고 시도 할 수 있습니다 :

예제 코드 :

import sys 
from PIL import Image,ImageDraw 

txt = 'C\'est mon texte!' 
txt2 = '??,??!' 


im = Image.new("RGBA",(300,200),(100,155,100)) 

draw = ImageDraw.Draw(im) 

draw.text((0,50), txt) 
draw.text((0,100), txt2) 
del draw 

im.save('font.png', "PNG") 

및 결과 :

enter image description here

+0

Humm ... 이미지 위에 텍스트를 삽입하는 방법을 봅니다. 그러나 기본 프린터로 보내는 방법은 무엇입니까? 그리고 해상도/품질을 향상시키는 방법? –

0

을 내가 대신에 reportlab를 사용하는 것이 좋습니다 PDF를 작성한 다음 gsprint를 사용하여 해당 PDF를 프린터로 전송하십시오.

답변보기 : https://stackoverflow.com/a/4498956/3571

+0

죄송합니다. 아니 ... 나는 그나마 EXE 파일을 사용해야한다고 생각하지 않는다. 경우가 단순한 경우 기본 프린터로 설정하거나 가상 pdfprinter처럼 primopdf 또는 다른. –

관련 문제