Printing a text over an image

Marco Nawijn nawijn at gmail.com
Thu Nov 15 05:43:50 EST 2012


On Wednesday, November 7, 2012 5:52:36 PM UTC+1, Martha Morrigan wrote:
> Hi guys,
> 
> 
> 
> Using python, wxpython and sqlite in a windows system, Im trying to
> 
> print some certificates/diplomas/cards with a image at background with
> 
> the name of person/text over it.
> 
> 
> 
> I know the basic steps to print the text using win32print from Pywin32
> 
> but...:
> 
> 
> 
> 1) I dont know how to add an image and set it to background.
> 
> 
> 
>    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()
> 
> 
> 
> This printer-code is inside a while loop calling each people name from
> 
> a sqlite database per check condition.
> 
> 
> 
> 
> 
> 2) All the names of database was printed at same page... how i command
> 
> the printer to spit out 1 page per name from the database?
> 
> 
> 
> 
> 
> 3) Any more simple approach or module to deals with printers (paper
> 
> and/or pdf) will be welcome.
> 
> 
> 
> Thanks in advance,
> 
> 
> 
> Martha

Hi Martha,

Since you are on windows, why don't you use MS/Word directly from Python. It has all the abstractions you need (documents, pages, tables, figures, printing etc.). Working with MS/Word through the win32 bindings is really simple.
I have done this a while ago for some automatic report generation. The basic routine is to start recording your actions with the MS/Word macro recorder, do the things you want to do, stop recording, look at the VB code and guess the equivalent Python code. This is not as bad as it sounds. It normally is really straightforward.

I am on Linux at the moment, so I cannot present any code examples. Feel free to try and post some example code if you get stuck.

Marco



More information about the Python-list mailing list