Personal tools
You are here: Home Software PyKota List of Features
Document Actions

List of Features

by Jerome Alet last modified 2007-12-09 22:57

This page briefly documents PyKota's extensive features set.

Free Software :

Available under the terms of the GNU General Public License.

Commercially supported :

Operating systems :

Print Servers :

Any GNU/Linux or UNIX-like system with the CUPS print server software v1.1.14 or higher installed. CUPS v1.3.4 or higher is recommended.

Clients :

Any operating system which can print through IPP, HTTP, LPR, or Samba shares : GNU/Linux, MacOSX, MS-Windows are the main ones, but most operating systems probably work.

Database backends :

The database(s) server(s) can be any machine supporting one of the following databases systems. The database(s) can be installed on the print server itself, but of course remote database servers are supported as well :

Relational :


Master/Slave databases :

PyKota supports accessing to a database in readonly mode and accessing to another one in read+write mode. Both databases don't need to be of the same type (e.g. PostgreSQL and OpenLDAP). This can be used to lower system load for example.

Printers :

  • Any physical or virtual printer which can report the value of its internal page counter and its printing/idle/error status through SNMP or PJL (over a TCP/IP port) is natively supported for hardware accounting.
  • Any physical or virtual printer which can return the value of its internal page counter and its printing/idle/error status through another way can be supported for hardware accounting with some additionnal work.
  • Any physical or virtual printer is supported in software accounting mode (i.e. count pages by parsing print job's datas) if it accepts print jobs in one of the following formats :
    • PostScript, either DSC compliant or binary.
    • PDF.
    • PCLXL (aka PCL6).
    • PCL3/4/5.
    • DVI.
    • OpenDocument (ISO/IEC DIS 26300).
    • Microsoft Word (c) (tm) (r) (etc...).
    • Plain text.
    • TIFF.
    • Several other image formats.
    • Zenographics' ZjStream.
    • Samsung QPDL (aka SPL2).
    • Samsung SPL1.
    • ESC/PageS03.
    • Brother HBP.
    • Hewlett-Packard LIDIL.
    • Structured Fax.
    • Canon BJ/BJC.
    • ASCII PNM (Netpbm).
  • Any physical or virtual printer is supported in "ink/toner usage" accounting mode, or in "color vs B&W" accounting mode, if it accepts print jobs in one of the following formats :
    • PostScript, either DSC compliant or binary.
    • PDF.
    • PCLXL (aka PCL6).
    • PCL3/4/5.
    • DVI.
    • OpenDocument (ISO/IEC DIS 26300).
    • Microsoft Word (c) (tm) (r) (etc...).
    • Plain text.
    • TIFF. Some TIFF files are not supported though.
    • Several other image formats.
  • Other physical or virtual printers can be supported in software accounting mode if you've got a parser for the input formats they accept. An incomplete list of supported printers is available.

Print Accounting and Print Quota modes :

  • Supports both Print Accounting and Print Quota enforcement. Each can be set on a per user and/or per users group basis.
  • Supports both Page based and Credits based quotas. Both can be set or reset independantly.
  • Nestable printers groups. Printers groups are similar to printers but can be used to aggregate datas or define complex cost computing schemes.
  • Users and Users Groups.
  • Each page quota can be set on a per user per printer basis, or on a per users group per printer basis, or both.
  • For a given user, credits are shared between all printers or printers groups.
  • Any currency is supported.
  • Cost per page and per job can be set depending on the printer being used, and soon depending on the print job's characteristics, like duplex vs simplex, paper format, etc...
  • It's possible to give free credits or pages to any user.
  • All users can have an overcharging or undercharging factor to be applied when computing the cost of the print job.
  • A passthrough mode is supported for printers, allowing people to print on them without impacting their quotas or credits.
  • A maximum allowed job size can be set on a per printer basis, and soon on a per user basis as well.
  • Each user can be independantly either forbidden to print, or allowed to print with no limit and no change to his credits.
  • Accounting per billing code is automatic.
  • Identification and Authentication can be enforced at printing time.
  • Per host or per billing code print accounting and print quotas can be configured if needed.
  • Several scripts can be plugged-in by the print admin, and launched automatically to fulfill almost any site-specific needs.
  • Entirely configurable automated printer and user account creation.
  • Entirely configurable end user notifications.
  • Etc... Etc... (no joke, you should really test it !)

Command line tools :

  • Support an unlimited number of arguments, allowing you to manage thousand of users on hundreds of printers with a single command.
  • Behave similarly and predictably, making them easy to learn and reuse in your own scripts.
  • Are independant of the database backend being used.
  • Support delegation of priviledges : currently readonly and read+write accesses are differentiated. Finer grained Access Control Lists will be supported in a future release.
  • Can all be used from the standard tasks scheduler (crontab) to automate or repeat actions (like resetting quotas for example) at any given times.

Advanced features :

  • Invoice generator and refunding tool produce printable documents in the PDF format.
  • On Screen Display (OSD) client side print quota reminder for X-Window.
  • Multi-platform client side notifier and end-user dialog manager.
  • Interactive step-by-step installer (currently only for Debian based distributions) can generate shell scripts to replicate the setup in unattended mode.
  • Automated tool to import printers, groups and users accounts from the operating system.

Web Interface (currently in readonly mode) :

  • Honors' Apache access restrictions and end user authentication (.htaccess files)
  • Displays :
    • Print quota status
    • Print account status
    • Printing history
  • Exports part of or the whole database in the following formats :
    • Different types of comma separated values.
    • XML.
    • CUPS' page_log format : interfacing with third party applications like phpPrintAnalyzer is immediate.
  • Enables end users to obtain a quote before printing.

Development :

  • Entirely developped in the Python language : no need to compile anything, code is readable and easily modifiable.
  • Automated error reporting (inactive by default because of privacy concerns) : bugs are found and fixed very rapidly.
  • Free Software : contributions are welcome.

Other :

If you want to know if PyKota supports a particular feature not listed above, then just ask us.

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: