def __setstate__(self, state): psd = self._win_psd dm = state.pop('_win_devmode', None) dn = state.pop('_win_devnames', None) GPageSetup.__setstate__(self, state) if dm: wps.GlobalFree(psd.hDevMode) psd.hDevMode = handle_with_contents(dm) if dn: wps.GlobalFree(psd.hDevNames) psd.hDevNames = handle_with_contents(dn)
def print_view(self, page_setup, prompt=True): paginator = Paginator(self, page_setup) psd = page_setup._win_psd pd = wp.PRINTDLG() pd.hDevMode = psd.hDevMode pd.hDevNames = psd.hDevNames pd.nMinPage = 1 pd.nMaxPage = paginator.num_pages pd.nCopies = 1 if wp.PrintDlg(pd): title = self.print_title di = wp.DOCINFO() di.lpszDocName = title devnames = wps.DevNames(psd.hDevNames) if devnames.output == "FILE:": from FileDialogs import request_new_file f = request_new_file("Print '%s' to file:" % title) if not f: return output_path = f.path di.lpszOutput = output_path try: hdc = pd.hDC dx, dy = wp.GetPrintingOffset(hdc) print "TODO: Printable: Implement a Cancel dialog" ### #wp.install_abort_proc(hdc) wp.StartDoc(hdc, di) for page_num in xrange(pd.nFromPage - 1, pd.nToPage): wp.StartPage(hdc) canvas = Canvas._from_win_hdc(hdc, for_printing=True) canvas.translate(-dx, -dy) paginator.draw_page(canvas, page_num) wp.EndPage(hdc) wp.EndDoc(hdc) finally: wp.DeleteDC(hdc)
def present_page_setup_dialog(page_setup): return wps.PageSetupDlg(page_setup._win_psd)
def _win_unlock_devmode(self): wps.GlobalUnlock(self._win_psd.hDevMode)
def _win_lock_devmode(self): return wps.lock_devmode_handle(self._win_psd.hDevMode)
def __getstate__(self): psd = self._win_psd state = GPageSetup.__getstate__(self) state['_win_devmode'] = wps.get_handle_contents(psd.hDevMode) state['_win_devnames'] = wps.get_handle_contents(psd.hDevNames) return state
def __new__(cls): self = GPageSetup.__new__(cls) self._win_psd = wps.get_defaults() return self