-from wxPython.wx import *
-from wxPython.lib.printout import PrintTable
-
-import os
+import os
+import wx
+import wx.lib.printout as printout
#---------------------------------------------------------------------------
buttonDefs = {
814 : ('PreviewWide', 'Preview print of a wide table'),
815 : ('PreviewNarrow', 'Preview print of a narrow table with color highlights'),
+ 816 : ('PreviewText', 'Preview print of a text file'),
818 : ('OnPreviewMatrix', 'Preview print of a narrow column grid without a table header'),
817 : ('PreviewLine', 'Preview print to demonstrate the use of line breaks'),
819 : ('PrintWide', 'Direct print (no preview) of a wide table'),
}
-class TablePanel(wxPanel):
+class TablePanel(wx.Panel):
def __init__(self, parent, log, frame):
- wxPanel.__init__(self, parent, -1)
+ wx.Panel.__init__(self, parent, -1)
self.log = log
self.frame = frame
- box = wxBoxSizer(wxVERTICAL)
- box.Add(20, 30)
+ box = wx.BoxSizer(wx.VERTICAL)
+ box.Add((20, 30))
keys = buttonDefs.keys()
keys.sort()
+
for k in keys:
text = buttonDefs[k][1]
- btn = wxButton(self, k, text)
- box.Add(btn, 0, wxALIGN_CENTER|wxALL, 15)
- EVT_BUTTON(self, k, self.OnButton)
+ btn = wx.Button(self, k, text)
+ box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 15)
+ self.Bind(wx.EVT_BUTTON, self.OnButton, btn)
- self.SetAutoLayout(true)
+ self.SetAutoLayout(True)
self.SetSizer(box)
def OnButton(self, evt):
eval(code)
def ReadData(self):
- test_file = "./data/TestTable.txt"
+ test_file = "./data/testtable.txt"
file = open(test_file,'r',1)
i = 0
data = []
while 1:
text = file.readline()
- text = string.strip(text)
+ text = text.strip()
if not text:
break
- list_val = string.splitfields(text,'\t')
+ list_val = text.split('\t')
data.append(list_val)
file.close()
def PreviewWide(self):
self.ReadData()
- prt = PrintTable(self.frame)
+ prt = printout.PrintTable(self.frame)
prt.data = self.data
prt.left_margin = 0.5
prt.set_column = [1.0, 1.0, 1.0, 1.5, 1.0, 3.0]
prt.SetLandscape()
prt.SetColumnLineSize(2, 3)
- prt.SetColumnLineColour(3, wxNamedColour('RED'))
+ prt.SetColumnLineColour(3, wx.NamedColour('RED'))
prt.SetRowLineSize(1, 3)
- prt.SetRowLineColour(5, wxNamedColour('RED'))
+ prt.SetRowLineColour(5, wx.NamedColour('RED'))
- prt.SetHeader("wxWindows Applications")
+ prt.SetHeader("wx.Windows Applications")
prt.SetFooter()
+ prt.SetFooter("Date: ", type = "Date", align=wx.ALIGN_RIGHT, indent = -1, colour = wx.NamedColour('RED'))
prt.Preview()
def PreviewNarrow(self):
val = self.header
new_header = [val[0], val[1], val[2], val[4], val[5]]
- prt = PrintTable(self.frame)
+ prt = printout.PrintTable(self.frame)
prt.data = new_data
prt.set_column = [ 1, 1, 1, 1, 2]
prt.label = new_header
- prt.SetColAlignment(1, wxALIGN_CENTRE)
- prt.SetColBackgroundColour(0, wxNamedColour('RED'))
- prt.SetColTextColour(0, wxNamedColour('WHITE'))
- prt.SetCellColour(4, 0, wxNamedColour('LIGHT BLUE'))
- prt.SetCellColour(4, 1, wxNamedColour('LIGHT BLUE'))
- prt.SetCellColour(17, 1, wxNamedColour('LIGHT BLUE'))
-
- prt.SetColBackgroundColour(2, wxNamedColour('LIGHT BLUE'))
- prt.SetCellText(4, 2, wxNamedColour('RED'))
-
- prt.SetColTextColour(3, wxNamedColour('RED'))
- prt.label_font_colour = wxNamedColour('WHITE')
- prt.SetHeader("wxWindows Applications", colour = wxNamedColour('RED'))
-
- prt.SetHeader("Date", align=wxALIGN_RIGHT, indent = -2, colour = wxNamedColour('BLUE'))
- prt.SetFooter("Page No", colour = wxNamedColour('RED'), type ="Num")
+ prt.SetColAlignment(1, wx.ALIGN_CENTRE)
+ prt.SetColBackgroundColour(0, wx.NamedColour('RED'))
+ prt.SetColTextColour(0, wx.NamedColour('WHITE'))
+ prt.SetCellColour(4, 0, wx.NamedColour('LIGHT BLUE'))
+ prt.SetCellColour(4, 1, wx.NamedColour('LIGHT BLUE'))
+ prt.SetCellColour(17, 1, wx.NamedColour('LIGHT BLUE'))
+
+ prt.SetColBackgroundColour(2, wx.NamedColour('LIGHT BLUE'))
+ prt.SetCellText(4, 2, wx.NamedColour('RED'))
+
+ prt.SetColTextColour(3, wx.NamedColour('RED'))
+ prt.label_font_colour = wx.NamedColour('WHITE')
+ prt.SetHeader("wxWindows Applications", colour = wx.NamedColour('RED'))
+
+ prt.SetHeader("Printed: ", type = "Date & Time", align=wx.ALIGN_RIGHT, indent = -1, colour = wx.NamedColour('BLUE'))
+ prt.SetFooter("Page No", colour = wx.NamedColour('RED'), type ="Num")
prt.Preview()
def OnPreviewMatrix(self):
for val in range(total_col):
columns.append(hsize)
- prt = PrintTable(self.frame)
+ prt = printout.PrintTable(self.frame)
for row in range(total_row):
value = []
data.append(value)
for col in range(total_col):
- prt.SetColAlignment(col, wxALIGN_CENTRE)
+ prt.SetColAlignment(col, wx.ALIGN_CENTRE)
prt.SetLandscape()
prt.text_font_size = 8
prt.Preview()
def PreviewLine(self):
- prt = PrintTable(self.frame)
+ prt = printout.PrintTable(self.frame)
prt.label = ["Header 1", "Header 2", "Header 3"]
prt.set_column = []
prt.data = [["Row 1", "1", "2"], ["Row 2", "3", "4\nNew Line to see if it also can wrap around the cell region properly\nAnother new line"]]
prt.SetFooter()
prt.Preview()
+ def PreviewText(self):
+ prt = printout.PrintTable(self.frame)
+ prt.SetHeader("PROCLAMATION")
+ file = open('data/proclamation.txt')
+ data = []
+ for txt in file:
+ data.append(txt.strip())
+ file.close()
+ prt.data = data
+ prt.Preview()
+
def PrintWide(self):
self.ReadData()
- prt = PrintTable(self.frame)
+ prt = printout.PrintTable(self.frame)
prt.data = self.data
prt.left_margin = 0.5
-import os
-import wxPython.lib.printout
-
-
-
-
overview = """\
<html><body>
<h2>Table Printing</h2>
</i></b> PrintOut class. To understand the class you need to examine the demo examples
and the library <a href="%s">printout.py</a> module classes.
<p>
-The initial class primarily contains a Table preview/printing class. There is alot of flexibility
+The initial class primarily contains a Table preview/printing class. There is a lot of flexibility
in manipulating the placement, sizing, colours, alignment of the table text and cell background colors.
There are also a number of options for printing Header and Footer information on the page.
<p>
when the framework allows for it.
-""" % os.path.join(os.path.dirname(wxPython.lib.printout.__file__), "printout.py")
+""" % os.path.join(os.path.dirname(printout.__file__), "printout.py")
+
+
+
+
+
+if __name__ == '__main__':
+ import sys,os
+ import run
+ run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])