Skip to main content

A CUPS PostScript Printer Driver's compressor and generator

Project description

pyppd is a CUPS PPD generator. It holds an compressed archive of PPDs, which can be listed and retrieved only when needed by CUPS, saving disk space.

Instalation

To install pyppd, you can use:

# pip install pyppd

Or download the source package, uncompress, and run as root:

# python setup.py install

It depends on Python 2.x or 3.x (http://www.python.org) and XZ Utils (http://tukaani.org/xz/).

Usage

At first, you have to create a PPD archive. For such, put all PPDs (they might be gzipped) you want to add in the archive inside a single folder (which can have subfolders), then run:

$ pyppd /path/to/your/ppd/folder

It’ll create pyppd-ppdfile in your current folder. This executable only works with the same Python version that you used to generate it. You can test it by running:

$ ./pyppd-ppdfile list

And, for reading a PPD from the archive, simply do:

$ ./pyppd-ppdfile cat pyppd-ppdfile:MY-PPD-FILE.PPD

For CUPS to be able to use your newly-created archive, copy pyppd-ppdfile to /usr/lib/cups/driver/ and you’re done.

The generated pyppd-ppdfile can be arbitrarily renamed, so that more than one packed repository can be installed on one system. This can be useful if you need a better performance, be it in time or memory usage. Note that also the PPD URIs will follow the new name:

$ ./pyppd-ppdfile list pyppd-ppdfile:LasterStar/LaserStar-XX100.ppd $ mv pyppd-ppdfile laserstar $ ./laserstar list laserstar:LaserStar/LaserStar-XX100.ppd

Contributors

  • Till Kamppeter - Original idea, mentoring and feedback. User #0.

  • Hin-Tak Leung - Lots of technical suggestions.

  • Martin Pitt - Python 3 port.

  • Flávio Ribeiro and Diógenes Fernandes - Refactorings and general Python’s best practices tips.

  • Google’s OSPO - Initial funding at GSoC 2010.

Issues

  • Add unit tests.

  • When testing if the PPD generated from the *Product line already exists in a *1284DeviceID line, we do a case-sensitive test. I think it should be case- insensitive.

  • Generate manpage.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyppd-1.0.1.tar.gz (14.9 kB view details)

Uploaded Source

File details

Details for the file pyppd-1.0.1.tar.gz.

File metadata

  • Download URL: pyppd-1.0.1.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyppd-1.0.1.tar.gz
Algorithm Hash digest
SHA256 99bcbe2127e4f678b8bd543a02b91341af6008f71f7faae417546d2ebde4c645
MD5 26178f40e29738d2d8b945994c962fd4
BLAKE2b-256 2ab72bb060de9645d51295a955de69c97bb8d1f47436db1b5ae182841458cf6f

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page