[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/forms/src/uidrivers/wx PrintForm.py
From: |
Jason Cater |
Subject: |
gnue/forms/src/uidrivers/wx PrintForm.py |
Date: |
Tue, 20 May 2003 12:26:46 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jason Cater <address@hidden> 03/05/20 12:26:45
Modified files:
forms/src/uidrivers/wx: PrintForm.py
Log message:
added page layout/headers/footers to default printout
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/wx/PrintForm.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: gnue/forms/src/uidrivers/wx/PrintForm.py
diff -c gnue/forms/src/uidrivers/wx/PrintForm.py:1.1
gnue/forms/src/uidrivers/wx/PrintForm.py:1.2
*** gnue/forms/src/uidrivers/wx/PrintForm.py:1.1 Mon May 19 20:13:50 2003
--- gnue/forms/src/uidrivers/wx/PrintForm.py Tue May 20 12:26:45 2003
***************
*** 35,53 ****
__all__ = ['printForm']
from wxPython.wx import *
def printForm(form, driver):
# Get a suitable title for the print job
! # We default to either "Form Name" or "Form Name (Page Name)"
# depending on if the page has a caption or not.
try:
title = form.title
except AttributeError:
title = 'Untitled Form'
try:
if form._currentPage.caption:
! title += ' (' + form._currentPage.caption + ')'
except AttributeError:
pass
--- 35,56 ----
__all__ = ['printForm']
from wxPython.wx import *
+ from gnue.forms import VERSION
+ import time
def printForm(form, driver):
# Get a suitable title for the print job
! # We default to either "Form Name" or "Form Name" + "Page Name"
# depending on if the page has a caption or not.
+ subtitle = ""
try:
title = form.title
except AttributeError:
title = 'Untitled Form'
try:
if form._currentPage.caption:
! subtitle = ' (' + form._currentPage.caption + ')'
except AttributeError:
pass
***************
*** 74,80 ****
prd.SetPrintData(printData)
prn = wxPrinter(prd)
! printout = FormPrintout(window, title, dest)
if not prn.Print(driver._gfObjToUIWidget[form].mainWindow, printout):
wxMessageBox(_("There was a problem printing.\nPlease verify your printer
setup and try again."), _("Printing"), wxOK)
--- 77,84 ----
prd.SetPrintData(printData)
prn = wxPrinter(prd)
! printout = FormPrintout(window, title, subtitle,
! form.triggerGetAuthenticatedUser() or 'Anonymous', dest)
if not prn.Print(driver._gfObjToUIWidget[form].mainWindow, printout):
wxMessageBox(_("There was a problem printing.\nPlease verify your printer
setup and try again."), _("Printing"), wxOK)
***************
*** 84,98 ****
class FormPrintout(wxPrintout):
! def __init__(self, window, title, dc):
self.__window = window
self.__title = title
self.__dc = dc
wxPrintout.__init__(self, title)
def OnPrintPage(self, page):
dest = self.GetDC()
src = self.__dc
w, h = src.GetSizeTuple()
! dest.Blit(50,50, w, h, src, 0, 0)
--- 88,165 ----
class FormPrintout(wxPrintout):
! def __init__(self, window, title, subtitle, login, dc):
self.__window = window
self.__title = title
+ self.__subtitle = subtitle
+ self.__login = login
self.__dc = dc
wxPrintout.__init__(self, title)
def OnPrintPage(self, page):
dest = self.GetDC()
+ dest.StartDoc (self.__title + (self.__subtitle and ' (%s)' %
self.__subtitle or ''))
+ dest.StartPage()
+ dest.SetFont(wxNORMAL_FONT)
+ dest.SetPen(wxBLACK_PEN)
+ dest.SetBrush(wxTRANSPARENT_BRUSH)
+
+
src = self.__dc
w, h = src.GetSizeTuple()
! screen_ppi_x, screen_ppi_y = self.GetPPIScreen()
! printer_ppi_x, printer_ppi_y = self.GetPPIPrinter()
! scale_x = printer_ppi_x / screen_ppi_x
! scale_y = printer_ppi_y / screen_ppi_y
!
! # Get page width/height, in mm
! page_width, page_height = self.GetPageSizePixels()
!
!
! # 3/4" margins
! page_margin_left = page_margin_right = int(printer_ppi_y*.75+.5)
! page_margin_top = int(printer_ppi_y*.75+.5)
! page_margin_bottom = int(page_margin_top/2)
! page_canvas_x = page_width - page_margin_left - page_margin_right
! page_canvas_y = page_height - page_margin_top - page_margin_bottom
!
! # Draw a header:
! # Form Name <Timestamp>
! # Page Caption Login: User Name
! # ------------------------------------------------------
!
! # Form and page title
! x, y = self.drawText(dest, page_margin_left, page_margin_top,
self.__title)
! x, y = self.drawText(dest, x, y, self.__subtitle)
!
! # Timestamp and login
! timestamp = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
! x, y = self.drawText(dest, page_width - page_margin_right,
page_margin_top,
! timestamp, rightAlign=1)
! x, y = self.drawText(dest, x, y, _('Login: ') + self.__login,
rightAlign=1)
!
! # Draw the border line
! dest.DrawLine(page_margin_left, y, page_width - page_margin_right, y)
!
! # .. and the actual screenshot
! y += page_margin_top
! dest.Blit(int((page_canvas_x - w)/2)+page_margin_left,y, w, h, src, 0, 0)
!
! # .. with a border
! dest.DrawRectangle(int((page_canvas_x - w)/2)+page_margin_left, y, w, h)
!
! # Finish up with the footer
! y = page_height - page_margin_bottom
! self.drawText(dest, page_margin_left, y, 'GNUe Forms %s' % VERSION,
bottomAlign=1)
! self.drawText(dest, page_width - page_margin_right, y, _('Page 1 of 1'),
rightAlign=1, bottomAlign=1)
!
! dest.EndPage()
! dest.EndDoc()
!
!
! def drawText(self, dc, x, y, text, rightAlign=0, bottomAlign=0):
! w, h = dc.GetTextExtent(text)
! dc.DrawText(text, x - (rightAlign and w or 0), y - (bottomAlign and h or
0))
! return (x + (not rightAlign and w or 0), y + int(h * 1.3))
!
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/forms/src/uidrivers/wx PrintForm.py,
Jason Cater <=