#!/usr/bin/env python import sys from gtkdictbrowser import GtkDictBrowser, hex_string import gtk import spoolss import string class printerdata: def __init__(self, host): host = string.replace(host, "/", "\\") self.hnd = spoolss.openprinter(host) def keys(self): return self.hnd.enumprinterdata().keys() def __getitem__(self, key): return self.hnd.getprinterdata(key)['data'] # Initialise printerdata dictionary if len(sys.argv) != 2: print "Usage: gprinterdata " print "where is a UNC printer name." sys.exit(1) try: t = printerdata(sys.argv[1]) except: print "gprinterdata: error opening %s" % sys.argv[1] sys.exit(1) # Create interface db = GtkDictBrowser(t) db.register_get_value_text_fn("", hex_string) db.build_ui('gprinterdata') # Override Python's handling of ctrl-c so we can break out of the # gui from the command line. import signal signal.signal(signal.SIGINT, signal.SIG_DFL) gtk.mainloop()