~vorlon/ubuntu/saucy/gourmet/trunk

« back to all changes in this revision

Viewing changes to src/lib/exporters/printer.py

  • Committer: Bazaar Package Importer
  • Author(s): Rolf Leggewie
  • Date: 2008-07-26 13:29:41 UTC
  • Revision ID: james.westby@ubuntu.com-20080726132941-6ldd73qmacrzz0bn
Tags: upstream-0.14.0
ImportĀ upstreamĀ versionĀ 0.14.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from gourmet.gdebug import debug
 
2
import os
 
3
 
 
4
# We grab the printer of choice and import methods from it. Each printer
 
5
# should provide a RecRenderer class which will do the actual printing.
 
6
 
 
7
def load_gnomeprint ():
 
8
    try:
 
9
        import gnomeprint
 
10
        global RecRenderer,SimpleWriter
 
11
        if hasattr(gnomeprint,'pango_create_context') and hasattr(gnomeprint,'pango_get_default_font_map'):            
 
12
            from gnomeprinter import RecRenderer, SimpleWriter
 
13
        else:
 
14
            # pre-pango gnomeprint
 
15
            debug("Using out-of-date gnomeprint (no pango layout support in printing)",0)
 
16
            from gnomeprinter_obsolete import RecRenderer, SimpleWriter
 
17
    except ImportError:
 
18
        debug('Gnome Printer is not available',0)
 
19
        return True
 
20
 
 
21
def load_winprinter ():
 
22
    global RecRenderer,SimpleWriter
 
23
    if os.name == 'nt':        
 
24
        from winprinter import RecRenderer, SimpleWriter
 
25
    else:
 
26
        return True
 
27
    
 
28
 
 
29
def load_lprprint ():
 
30
    if os.name == 'nt': return True
 
31
    global RecRenderer,SimpleWriter
 
32
    from lprprinter import RecRenderer, SimpleWriter
 
33
 
 
34
 
 
35
printers = {'gnomeprint':load_gnomeprint,
 
36
            'win':load_winprinter,
 
37
            'lpr':load_lprprint}
 
38
 
 
39
from gourmet.OptionParser import options
 
40
 
 
41
printer_names = ['lpr','win','gnomeprint']
 
42
printer = options.printer
 
43
 
 
44
try:
 
45
    printer_names.remove(printer)
 
46
except ValueError:
 
47
    print 'Printer type: ',printer,' not recognized!'
 
48
    printer = printer_names.pop()
 
49
 
 
50
# A return value of True means we failed to import
 
51
# so we'd better keep trying
 
52
while printers[printer]() and printers:
 
53
    print "Loading ",printer," failed:",
 
54
    printer = printer_names.pop()
 
55
    print "trying ",printer
 
56