def connect_print_compositor(self, printop): """Connect document print compositor to PrintOperation.""" prefm = self.app.prefm compoz = gtksv.print_compositor_new_from_view(self.ev.view) # Compositor options from PrefsManager for m in ['1header','2footer']: s = prefm.get_pref('print_%s_separator' % (m)) txt = prefm.get_pref('print_%s_text' % (m)).split('|') txt = [t.strip() for t in txt] if len(txt) == 3: fmt = tuple(self.get_fname() if t=="%f" else t for t in txt) else: fmt = ("", "", "") f = prefm.get_pref('print_%s_font' % (m)) d = prefm.get_pref('print_%s' % (m)) getattr(compoz, 'set_%s_format' % (m[1:]))(*((s,)+fmt)) getattr(compoz, 'set_%s_font_name' % (m[1:]))(f) getattr(compoz, 'set_print_%s' % (m[1:]))(d) for i,m in enumerate(['top','left','right','bottom']): p, u = 'print_margin_%i%s' % (i+1, m), gtk.UNIT_POINTS getattr(compoz, 'set_%s_margin' % (m))(prefm.get_pref(p), u) compoz.set_line_numbers_font_name(prefm.get_pref('print_nlinesfont')) compoz.set_print_line_numbers(prefm.get_pref('print_nlinesinterval')) # ProntOperation events dp_cb = lambda op,ct,pn,cp: cp.draw_page(ct, pn) printop.connect('begin-print', self.ev_begin_print, compoz) printop.connect('draw-page', dp_cb, compoz) printop.set_job_name("Euphorbia: %s" % self.get_fname()) return
def print_cb(action, sourceview): window = sourceview.get_toplevel() buffer = sourceview.get_buffer() compositor = gtksourceview2.print_compositor_new_from_view(sourceview) compositor.set_wrap_mode(gtk.WRAP_CHAR) compositor.set_highlight_syntax(True) compositor.set_print_line_numbers(5) compositor.set_header_format(False, 'Imprimé dans %A', None, '%F') filename = buffer.get_data('filename') compositor.set_footer_format(True, '%T', filename, 'Page %N/%Q') compositor.set_print_header(True) compositor.set_print_footer(True) print_op = gtk.PrintOperation() print_op.connect("begin-print", begin_print_cb, compositor) print_op.connect("draw-page", draw_page_cb, compositor) res = print_op.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, window) if res == gtk.PRINT_OPERATION_RESULT_ERROR: error_dialog( window, "Une erreur est survenue lors de l'impression du fichier :\n\n" + filename) elif res == gtk.PRINT_OPERATION_RESULT_APPLY: print('Le fichier suivant a bien été imprimé "%s"' % filename)
def print_cb(self): sourceview = self.tw window = sourceview.get_toplevel() buffer = sourceview.get_buffer() compositor = gtksourceview2.print_compositor_new_from_view(sourceview) compositor.set_wrap_mode(gtk.WRAP_WORD_CHAR) compositor.set_highlight_syntax(True) #compositor.set_print_line_numbers(5) #compositor.set_header_format(False, 'Printed on %A', None, '%F') filename = self.get_filepath() compositor.set_footer_format(True, '%T %F', filename, 'Page %N/%Q') compositor.set_print_header(False) compositor.set_print_footer(True) print_op = gtk.PrintOperation() print_op.connect("begin-print", self.begin_print_cb, compositor) print_op.connect("draw-page", self.draw_page_cb, compositor) res = print_op.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, window) if res == gtk.PRINT_OPERATION_RESULT_ERROR: #error_dialog(window, "Error printing file:\n\n" + filename) return common.view.popup_error("Error printing file '%s'" % (filename)) elif res == gtk.PRINT_OPERATION_RESULT_APPLY: common.view.statusMsg('File printed: %s' % filename)
def print_contents(self, preview=False): """Send content of editor to printer.""" view = self.textview compositor = gtksourceview2.print_compositor_new_from_view(view) operation = gtk.PrintOperation() operation.connect('paginate', self.on_print_paginate, compositor) operation.connect('draw-page', self.on_print_draw_page, compositor) if preview: action = gtk.PRINT_OPERATION_ACTION_PREVIEW else: action = gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG operation.run(action)
def print_contents(self, preview=False): """Send content of editor to printer.""" view = self.textview compositor = gtksourceview2.print_compositor_new_from_view(view) operation = gtk.PrintOperation() operation.connect('paginate', self.on_print_paginate, compositor) operation.connect('draw-page', self.on_print_draw_page, compositor) if preview: action = gtk.PRINT_OPERATION_ACTION_PREVIEW else: action = gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG operation.run(action)
def doPrint (parent, textView, fileName): assert type(fileName) is unicode def on_begin_print (operation, context, compositor): while not compositor.paginate(context): pass nPages = compositor.get_n_pages() operation.set_n_pages(nPages) def on_draw_page (operation, context, pageNum, compositor): compositor.draw_page(context, pageNum) if GTKSV: # parent = textView.get_toplevel() buffer = textView.get_buffer() compositor = gtksv.print_compositor_new_from_view(textView) compositor.set_wrap_mode(gtk.WRAP_WORD_CHAR) # gtk.WRAP_CHAR | gtk.WRAP_NONE | gtk.WRAP_WORD | gtk.WRAP_WORD_CHAR compositor.set_highlight_syntax(True) # compositor.set_print_line_numbers(5) if fileName == u'': compositor.set_print_header(False) compositor.set_print_footer(False) else: # set header and footer # %N -- page number, %Q -- number of pages # see man 3 strftime (%Y -- year, %m -- month, %d -- day, ...) compositor.set_header_format(True, '', fileName, '%N/%Q') compositor.set_print_header(True) compositor.set_print_footer(False) printOp = gtk.PrintOperation() printOp.connect("begin-print", on_begin_print, compositor) printOp.connect("draw-page", on_draw_page, compositor) res = printOp.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, parent) #if res == gtk.PRINT_OPERATION_RESULT_ERROR: # if Trace: 'print error' #else: # if Trace: 'print ok' else: # not GTKSV print 'gtksourceview module required for printing'
def printall(act, location): views = [view for view in act.vigtk.window.get_views()] count = 1 for view in views: po = PrintOperation() setup = PageSetup() po.set_default_page_setup(setup) po.set_export_filename("%s/%d.pdf" % (location, count)) count += 1 pc = gtksourceview2.print_compositor_new_from_view(view) po.connect("begin_print", begin_print, pc) po.connect("draw_page", draw_page, pc) res = po.run(act.gtk.PRINT_OPERATION_ACTION_EXPORT)
def printall(act, location): views = [view for view in act.vigtk.window.get_views()] count = 1 for view in views: po = PrintOperation() setup = PageSetup() po.set_default_page_setup(setup) po.set_export_filename("%s/%d.pdf" % (location, count)) count += 1 pc = gtksourceview2.print_compositor_new_from_view(view) po.connect("begin_print", begin_print, pc) po.connect("draw_page", draw_page, pc) res = po.run(act.gtk.PRINT_OPERATION_ACTION_EXPORT)
def print_cb(action, sourceview): window = sourceview.get_toplevel() buffer = sourceview.get_buffer() compositor = gtksourceview2.print_compositor_new_from_view(sourceview) compositor.set_wrap_mode(gtk.WRAP_CHAR) compositor.set_highlight_syntax(True) compositor.set_print_line_numbers(5) compositor.set_header_format(False, 'Printed on %A', None, '%F') filename = buffer.get_data('filename') compositor.set_footer_format(True, '%T', filename, 'Page %N/%Q') compositor.set_print_header(True) compositor.set_print_footer(True) print_op = gtk.PrintOperation() print_op.connect("begin-print", begin_print_cb, compositor) print_op.connect("draw-page", draw_page_cb, compositor) res = print_op.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, window) if res == gtk.PRINT_OPERATION_RESULT_ERROR: error_dialog(window, "Error printing file:\n\n" + filename) elif res == gtk.PRINT_OPERATION_RESULT_APPLY: print 'file printed: "%s"' % filename
def print_cb(action, sourceview): window = sourceview.get_toplevel() buffer = sourceview.get_buffer() compositor = gtksourceview2.print_compositor_new_from_view(sourceview) compositor.set_wrap_mode(gtk.WRAP_CHAR) compositor.set_highlight_syntax(True) compositor.set_print_line_numbers(5) compositor.set_header_format(False, 'Printed on %A', None, '%F') filename = buffer.get_data('filename') compositor.set_footer_format(True, '%T', filename, 'Page %N/%Q') compositor.set_print_header(True) compositor.set_print_footer(True) print_op = gtk.PrintOperation() print_op.connect("begin-print", begin_print_cb, compositor) print_op.connect("draw-page", draw_page_cb, compositor) res = print_op.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, window) if res == gtk.PRINT_OPERATION_RESULT_ERROR: error_dialog(window, "Error printing file:\n\n" + filename) elif res == gtk.PRINT_OPERATION_RESULT_APPLY: print 'file printed: "%s"' % filename