0% found this document useful (0 votes)
209 views

Pykota

Pykota is an open source print management and quota enforcement system. It allows organizations to centrally manage printers and user printing quotas. Key features include supporting various printing systems and clients, setting page or credit quotas by user or group, and providing reporting on printing usage and costs. Pykota installs on Linux servers and works with common databases and printing systems like CUPS. It offers more advanced functionality than alternatives while being internationalized and extensible through its Python codebase.

Uploaded by

mirkos_1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
209 views

Pykota

Pykota is an open source print management and quota enforcement system. It allows organizations to centrally manage printers and user printing quotas. Key features include supporting various printing systems and clients, setting page or credit quotas by user or group, and providing reporting on printing usage and costs. Pykota installs on Linux servers and works with common databases and printing systems like CUPS. It offers more advanced functionality than alternatives while being internationalized and extensible through its Python codebase.

Uploaded by

mirkos_1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Take control of printing system

with
PYKOTA

By
Umar Akram

Objective

The Objective of this presentation is to


describe how you can handle the printer
management issues of your company with
Open Source Software like Pykota.

Agenda

Introduction
Architecture
Comparison
Conclusion
Q&A

Pykota

PyKota is one of the most advanced Open


Source Software dedicated to print
accounting and print quota enforcement.
It is a full featured, internationalized,
centralized, and extensible print quota
system for CUPS.

CUPS

Common Unix Printing System is a modular


printing system for Unix-like computer
operating systems, allows a computer to act
as a print server. A computer running CUPS
is a host that can accept print jobs from client
computers, process them, and send them to
the appropriate printer.

Pykota 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 server(s) can be any machine
supporting one of the following databases
systems.

MySQL
PostgreSQL
SQLite
LDAP

The database can be installed on the print


server itself, but remote database servers are
supported as well.

Printers

Any physical or virtual printer which can report the value of its
internal page counter and its printing/idle/error status through SNMP
(Simple Network Management Protocol) or PJL (over a TCP/IP port)
is natively supported for hardware accounting.
Any physical or virtual printer is supported in software accounting
mode (i.e. count pages by parsing print job's data) if it accepts print
jobs in one of the following formats :

PostScript
PDF
Microsoft Word
Plain text
TIFF
Etc

Features

Pykota Supports both Print Accounting and


Print Quota enforcement. Each can be set
on a per user or per users group basis.
Supports both Page based and Credits
based quotas. Both can be set or reset
independently.
Each page quota can be set on a per user
per printer basis, or on a per users group
per printer basis, or both.

Features

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.
It's possible to give free credits or pages to
any user.

Features

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.
Each user can be independently either
forbidden to print, or allowed to print with
no limit and no change to his credits.

5 Ways to limit an
account from printing

Number of pages per printer :

Number of credits to spend :

100 pages on HP LaserJet 2100


30 pages on EPSON Stylus Color
1 page = x credits on HP 2100
1 page = y credits on Stylus Color
Cost of the job itself (optional)

No limit, but accounting done


No limit, and no accounting
Printing is forbidden

2 Accounting modes

Hardware accounting (direct querying of printers) :

SNMP (Simple Network Management Protocol)


HP PJL (Printer Job Language)
External scripts

Software accounting :

pkpgcounter :

Counting pages
Computing percent of ink coverage

External scripts :

Counting pages

Installation
With PyKota, you need to install three main components:
The back end. You can use LDAP, MySQL or PostgreSQL.
The dependencies. PyKota depends on 17 other packages.

CUPS

Python language interpreter


mxDateTime
Python-PygreSQL

Python-PAM
Python-OSD

The PyKota application itself.

Important Commands

Pkusers: to manage users and users groups.


Pkprinters: to manage printers and printers groups.
Repykota: to do some basic print quota reporting.
Edpykota: to manage users' and users groups' print quota
entries.
Warnpykota: to warn users over quota from time to time
Pkinvoice: an invoice generator which can create personalized
PDF invoices for your users from their printing history.

Pkusers --list

Pkprinters --list LaserJet-1200

Repykota --printer LaserJet-1200 root

Comparison
Functionality

PyKota

Programming language

Python

Internationalization

Yes: English, French, Spanish,


Portuguese, Brazilian,
Swedish, Thai, German and
Italian. More translations are
planned

Web Interface

Report quotas and history alone, the


web administration interface
is planned

Central Storage

Yes

Printbill
Perl + C

Yes: English and French.

Yes, including graphical reports

Yes

Printquota

PQuotas

Shell scripts + PHP

No

No, only French

No

Yes complete
administration
interface in PHP

Yes

Yes

Comparison Continued
Functionality

PyKota

Printbill

Printquota

Printing Systems Supported

CUPS and LPRng

LPRng and CUPS

Do you work with Windows


clients?

Yes

Yes

Yes

Documentation

Yes

Yes, FAQ (in text format)

Yes

LPRng

PQuotas

LPRng, LPD

Yes

Yes, only in French

Other Important Packages

Tea4Cups
Pkpgcounter

Tea4CUPS

Tea4CUPS is a CUPS backend wrapper which can


capture print data before they are sent to a printer
and process, duplicate or dispatch them in a number
of ways.
You are greatly encouraged to use this software
instead of writing your own CUPS back-ends :
Tea4CUPS will let you plug your own scripts, filters,
tools, or commands wherever you want, while giving
them access to all the print job's characteristics in a
consistent way.
Tea4CUPS is a 100% Python written standalone
script distributed under the terms of the GNU
General Public License

Pkpgcounter
Pkpgcounter is a generic Page Description Language parser which can either count the
number of pages or compute the percent of ink coverage needed to print various types of
documents. It currently recognizes the following file formats :

PostScript (both DSC compliant and binary)


PDF
PCL3/4/5
PCLXL (aka PCL6)
DVI
OpenDocument (ISO/IEC DIS 26300)
Microsoft Word (c) (tm) (r) (etc...)
Plain text
TIFF
Several other image formats
ESC/P2
Samsung QPDL (aka SPL2)
Samsung SPL1
etc.

Conclusion

One of the best choice for printing system


management.
Pykota is suitable Open Source Software for
Quota Management.
Provide best control over Printing Resource
Management.

You might also like