[cups.general] Python bindings for CUPS

Tim Waugh twaugh at redhat.com
Sun Feb 19 06:31:39 PST 2006


In case anyone else is interested in communicating with a CUPS server
from Python (although with an extension module), here is a snapshot of
some work I've been doing in this area:

  http://cyberelk.net/tim/data/pycups/

Example interactive session:

>>> import cups
>>> cups.setUser("root")
>>> conn = cups.Connection ()
>>> dir(conn)
['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'acceptJobs', 'addPrinter', 'deletePrinter', 'disablePrinter', 'enablePrinter', 'getFile', 'getPPD', 'getPrinters', 'putFile', 'rejectJobs', 'setPrinterDevice']
>>> f = conn.getPPD ("stylus")
>>> ppd = cups.PPD (f)
>>> dir (ppd)
['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'conflicts', 'getOptionGroups', 'markDefaults', 'markOption']
>>> groups=ppd.getOptionGroups ()
>>> for g in groups:
....     print g.name
....     print g.options
....
Adjustment
{'stpGamma': <cups.Option object at 0x2aaaaab19230>, 'Density': <cups.Option object at 0x2aaaaab19170>, 'stpSaturation': <cups.Option object at 0x2aaaaab192f0>, 'stpBrightness': <cups.Option object at 0x2aaaaab19210>, 'Yellow': <cups.Option object at 0x2aaaaab19330>, 'Cyan': <cups.Option object at 0x2aaaaab191d0>, 'Magenta': <cups.Option object at 0x2aaaaab191f0>, 'Contrast': <cups.Option object at 0x2aaaaab191b0>}
General
{'PageRegion': <cups.Option object at 0x2aaaaab19130>, 'PrintoutMode': <cups.Option object at 0x2aaaaab19350>, 'InkType': <cups.Option object at 0x2aaaaab19310>, 'MediaType': <cups.Option object at 0x2aaaaab19110>, 'PageSize': <cups.Option object at 0x2aaaaab19150>}
PrintoutMode
{'Quality': <cups.Option object at 0x2aaaaab193f0>, 'GSResolution': <cups.Option object at 0x2aaaaab19390>, 'ImageType': <cups.Option object at 0x2aaaaab19190>, 'Dither': <cups.Option object at 0x2aaaaab19370>, 'OutputType': <cups.Option object at 0x2aaaaab193b0>}
>>> conn.addPrinter ("stylus2", f)
Password for root on localhost?
>>> conn.enablePrinter ("stylus2")
>>> conn.acceptJobs ("stylus2")
>>> conn.getPrinters ().keys ()
['psc-2200-series--1', 'psc', 'psc-hi', 'stylus', 'stylus2']

Tim.
*/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.cups.org/pipermail/cups/attachments/20060219/7195f487/attachment.bin>


More information about the cups mailing list