Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
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'
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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