[pywin32-checkins] pywin32/win32/Demos print_desktop.py,1.1,1.2
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Roger U. <ru...@us...> - 2005-05-18 16:42:01
|
Update of /cvsroot/pywin32/pywin32/win32/Demos In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31531/win32/Demos Modified Files: print_desktop.py Log Message: Remove hardcoded print processor name and add an extra CreateCompatibleDC so demo works with more types of printers, use API functions instead of MFC object methods Index: print_desktop.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/Demos/print_desktop.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** print_desktop.py 12 Sep 2004 23:02:32 -0000 1.1 --- print_desktop.py 18 May 2005 16:41:52 -0000 1.2 *************** *** 1,3 **** ! import win32print, pywintypes, win32con, win32ui, win32gui pname=win32print.GetDefaultPrinter() --- 1,3 ---- ! import win32print, pywintypes, win32con, win32gui, win32ui pname=win32print.GetDefaultPrinter() *************** *** 5,9 **** p=win32print.OpenPrinter(pname) print 'Printer handle: ',p ! ## call with last parm set to 0 to get total size needed for printer's DEVMODE dmsize=win32print.DocumentProperties(0, p, pname, None, None, 0) --- 5,9 ---- p=win32print.OpenPrinter(pname) print 'Printer handle: ',p ! print_processor=win32print.GetPrinter(p,2)['pPrintProcessor'] ## call with last parm set to 0 to get total size needed for printer's DEVMODE dmsize=win32print.DocumentProperties(0, p, pname, None, None, 0) *************** *** 16,39 **** win32print.DocumentProperties(0, p, pname, dm, dm, win32con.DM_IN_BUFFER|win32con.DM_OUT_BUFFER) ! pDC=win32gui.CreateDC('WINSPOOL',pname,dm) ! printerDC=win32ui.CreateDCFromHandle(pDC) ! ! printerwidth=printerDC.GetDeviceCaps(110) ##PHYSICALWIDTH ! printerheight=printerDC.GetDeviceCaps(111) ##PHYSICALHEIGHT hwnd=win32gui.GetDesktopWindow() - ## hwnd=win32gui.GetForegroundWindow() l,t,r,b=win32gui.GetWindowRect(hwnd) desktopheight=b-t desktopwidth=r-l dDC = win32gui.GetWindowDC(hwnd) - desktopDC=win32ui.CreateDCFromHandle(dDC) ! printerDC.StartDoc('desktop.bmp') ! printerDC.StartPage() ! printerDC.StretchBlt((0,0),(int(printerwidth*.9),int(printerheight*.9)), ## allow for paper margin ! desktopDC,(0,0),(desktopwidth,desktopheight),win32con.SRCCOPY) ! printerDC.EndPage() ! printerDC.EndDoc() --- 16,51 ---- win32print.DocumentProperties(0, p, pname, dm, dm, win32con.DM_IN_BUFFER|win32con.DM_OUT_BUFFER) ! pDC=win32gui.CreateDC(print_processor,pname,dm) ! printerwidth=win32ui.GetDeviceCaps(pDC, 110) ##PHYSICALWIDTH ! printerheight=win32ui.GetDeviceCaps(pDC, 111) ##PHYSICALHEIGHT hwnd=win32gui.GetDesktopWindow() l,t,r,b=win32gui.GetWindowRect(hwnd) desktopheight=b-t desktopwidth=r-l dDC = win32gui.GetWindowDC(hwnd) ! dcDC=win32gui.CreateCompatibleDC(dDC) ! dcBM = win32gui.CreateCompatibleBitmap(dDC, desktopwidth, desktopheight); ! win32gui.SelectObject(dcDC, dcBM) ! win32gui.StretchBlt(dcDC, 0, 0, desktopwidth, desktopheight, dDC, 0, 0, desktopwidth, desktopheight, win32con.SRCCOPY) ! ! pcDC=win32gui.CreateCompatibleDC(pDC) ! pcBM=win32gui.CreateCompatibleBitmap(pDC, printerwidth, printerheight) ! win32gui.SelectObject(pcDC, pcBM) ! win32gui.StretchBlt(pcDC, 0, 0, printerwidth, printerheight, dcDC, 0, 0, desktopwidth, desktopheight, win32con.SRCCOPY) ! ! win32print.StartDoc(pDC,('desktop.bmp',None,None,0)) ! win32print.StartPage(pDC) ! win32gui.StretchBlt(pDC, 0, 0, int(printerwidth*.9), int(printerheight*.9), pcDC, 0, 0, printerwidth, printerheight, win32con.SRCCOPY) ! ! win32print.EndPage(pDC) ! win32print.EndDoc(pDC) ! ! win32print.ClosePrinter(p) ! win32gui.DeleteDC(dDC) ! win32gui.DeleteDC(dcDC) ! win32gui.DeleteDC(pDC) ! win32gui.DeleteDC(pcDC) |