Mario, Here is a function stripped from a working program that uses printpreview from wxWindows to print out cells from a grid that the user is working on. Hopefully this can point you in the proper direction.
Regards, Larry Bates def DO_printpreview(self, event): if self._trace: self.logf.writelines("T","Entering OuterFrame.DO_printpreview") self.SetStatusText('Generating Print Preview', 0) # # Define the columns on the printout # columndefs=(("Cust#", 8.0/16.0, wxALIGN_LEFT), ("Customer Name", 29.0/16.0, wxALIGN_LEFT), ("Reference", 16.0/16.0, wxALIGN_LEFT), ("Type", 6.0/16.0, wxALIGN_CENTRE), ("Inv. #", 8.0/16.0, wxALIGN_CENTRE), ("InvDate", 9.0/16.0, wxALIGN_CENTRE), ("L#", 4.0/16.0, wxALIGN_CENTRE), ("Item #", 12.0/16.0, wxALIGN_CENTRE), ("Item Description",45.0/16.0, wxALIGN_LEFT), ("Qty", 6.0/16.0, wxALIGN_RIGHT), ("Cost", 10.0/16.0, wxALIGN_RIGHT), ("OMMC $", 10.0/16.0, wxALIGN_RIGHT) ) columncount=len(columndefs) # # Create a new frame for the print preview and give it to PrintTable # self.previewframe=PreviewFrame(None, sys.stdout) if self._trace: log.writelines("T","DO_ppv-Creating PrintTable instance") prt=PrintTable(self.previewframe) # # Set printout column widths # if self._trace: self.logf.writelines("T","DO_ppv-Setting column widths") prt.set_column=[a[1] for a in columndefs] # # Set the column labels (headings) # if self._trace: self.logf.writelines("T","DO-ppv-Setting column headings") prt.label=[a[0] for a in columndefs] # # Set the column alignments # if self._trace: self.logf.writelines("T", "DO-ppv-Setting column alignments") map(prt.SetColAlignment, range(columncount), [a[2] for a in columndefs]) # # Get the data values from the grid that are selected # data=self._getdata('1') # # Skip the first (flag) column and columns 11,13,15,16 # to delete them from the printout. # data=[[v[1],v[2],v[3],v[4][0:2],v[5],v[6], v[7],v[8],v[9],v[10],v[12],v[14]] for v in data] # # Loop over the lines and insert a blank line between customers # blankline=columncount*[''] # Create a blank output line lastcustomer=None pdata=[] for values in data: if lastcustomer != None and values[0] != lastcustomer: pdata.append(blankline) lastcustomer=values[0] pdata.append(values) pdata.append(blankline) prt.data=pdata prt.left_margin=0.3 prt.SetLandscape() prt.SetHeader("OMMC Recap Listing-Hardware Items") prt.SetFooter() prt.SetFooter("Date: ", type = "Date & Time", \ align=wxALIGN_LEFT, \indent=prt.left_margin) # # Override the default font sizes # prt.text_font_size = 8 #prt.label_font_size= 7 prt.cell_left_margin = 1.0/32.0 prt.Preview() if self._trace: self.logf.writelines("T","Entering OuterFrame.DO_printpreview") return Mario wrote: > Hello all, I'm trying hard to make possible to print some simple text from > python to the default printer using wxPython, after days of internet > searches I found this page: http://wiki.wxpython.org/index.cgi/Printing but > is impossible to use this script even if I do exactly as said there. I think > the script is buggy or I am not able to use it, even if seems very simple to > use... > > Anyone can give me an hint on how to easily and simply print some text? Is > there a library ready to download and use? Something like SendPrinter("some > text\n")? > > Thanks in advance if anyone can give any help. > > Mario > > -- http://mail.python.org/mailman/listinfo/python-list