root / pykota / trunk / FAQ @ 1296

Revision 1286, 7.0 kB (checked in by jalet, 21 years ago)

Improved documentation

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1PyKota's FAQ :
2
3  # $Id$
4 
5  * Is print accounting ever exact ?
6 
7    No. Print accounting is **never** exact, because it depends
8    on external factors like the presence of paper in the printer,
9    the quantity of remaining ink in the print cartridge, paper
10    jams, etc... All these things are very difficult to account
11    for correctly, and no print accounting package deals with
12    these artefacts correctly in all situations.
13    We are however confident that PyKota is one of the more
14    exact print accounting software, because by default it
15    asks the printers for how many pages they have really printed.
16   
17  * Can PyKota account for ink usage ? 
18 
19    No. Actually PyKota doesn't account for ink usage, but this
20    may come in a future release. PyKota only accounts for pages
21    printed and/or money spent.  If ink accounting is a necessity
22    for you, PrintBill is recommended instead of PyKota. PrintBill
23    allows you to bill differently per color, and to bill depending
24    on the percent of the ink covered part of the pages.
25   
26  * What is a 'dumb printer' ?
27 
28    In PyKota, the term 'dumb printer' defines a printer which doesn't
29    understand PostScript AND doesn't have an internal page counter, AND
30    for which you don't know how to compute a job's size in number of
31    pages by analyzing its content. Any printer which is not a
32    'dumb printer' according to the above definition is supported
33    with PyKota.
34
35  * How can I make PyKota work with my non-postscript printer under
36    CUPS ? 
37 
38    From version 1.16alpha7, PyKota includes a CUPS backend which
39    allows you to use any type of printer and any driver, provided
40    your printer is not a 'dumb printer' (see above).
41   
42  * How can I use my 'dumb printer' with CUPS and PyKota. 
43 
44    The solution is to plug the pykota filter into the
45    filtering chain when the print job is still in
46    PostScript format, before being converted to the
47    dumb printer's native format. You can't use the
48    cupspykota CUPS backend with 'dumb printers'.
49   
50    Here's how to do :
51   
52        - Disable raw mode by modifying *.convs and
53          *.types files in /etc/cups, then restart
54          CUPS.
55         
56        - If you print from Windows through Samba,
57          don't put '-o raw' in the print command
58          definition in smb.conf
59         
60        - Under Windows, use a PostScript driver 
61          set to maximum compatibility mode.
62         
63        - Modify *.convs and *.types files to 
64          insert the pykota filter into the
65          filtering chain, as described
66          here (url should be on a single line) :
67         
68          http://cgi.librelogiciel.com/pipermail/  ...
69             ... pykota/attachments/20030721/753239b5/attachment.eml
70         
71          and restart CUPS.
72         
73  * I've got a great number of users. How can I automatically
74    set an initial print quota for them on first print ?
75   
76    You have to define an external policy for unknown users,
77    to automatically add them to the Print Quota database.
78    The sample configuration file contains examples to do this.
79   
80  * How can I diagnose the problem when something goes wrong ?
81 
82    Put "LogLevel debug2" in cupsd.conf (usually in /etc/cups/).
83    Then put "logger: system" and "debug: yes" in
84    /etc/pykota/pykota.conf.
85    Finally restart CUPS.
86    CUPS' error_log file will now contain many informations which
87    will help diagnose your problem. Also your syslog's output for
88    the LPR facility (usually /var/log/lpr.log) will contain
89    PyKota's debug messages, notably all database related queries
90    and their result, be your database PostgreSQL or OpenLDAP.
91    With these two files the problem can usually be diagnosed within
92    minutes. Send them to the mailing list and wait for an answer.
93   
94  * Some, not all, print jobs are never accounted for, why ?
95 
96    From version 1.16alpha7, you can now use the cupspykota
97    CUPS backend, which ensures that all print jobs will be
98    accounted for. The use of the old pykota filter is deprecated
99    with CUPS. It remains the filter of choice for LPRng though,
100    or when you absolutely need to support a 'dumb printer' (see
101    definition above).
102   
103  * When printing from Windows, the jobs are never accounted for,
104    but from *nix they are. Could you explain the reason for this ?
105   
106    First refer to the point above. If this doesn't solve your
107    problem, try to set your print driver to PostScript mode
108    and check the "maximum compatibility" box in its configuration,
109    instead of "maximum speed". Often HP printers come with both
110    a PCL and a PostScript driver under Windows. Don't install the
111    PCL one.
112   
113  * How can I share print quota between some printers only (not all) ?   
114 
115    To do this you have to put the printers into a printers group, and
116    set quota on the printer group, instead of (or in addition to)
117    the printers themselves.
118   
119  * What is a printer group ?
120 
121     A printer group is exactly like a normal printer, but is
122     unknown by the printing system. You can use printer groups
123     to share print quota between printers.
124   
125  * How can I create a printer group ?   
126 
127    Just use edpykota, like for normal printers.
128 
129  * How can I put a printer into a printer group ?
130 
131    Use the new -G|--pgroups command line option to edpykota
132    You can put sereval printers into several printers groups
133    in one command using the following syntax :
134   
135      $ edpykota --pgroups pg1[,pg2,pg3,...] --printers p1[,p2,p3,...]
136       
137    What is between square brackets is optional.   
138    Both p1,p2 and pg1,pg2 can contain wildcards.
139   
140  * How quota checking and update is done with printer groups ?   
141 
142    Print accounting and quota checking is done for a printer and
143    all the printers groups it belongs to, recursively.
144    If quota is reached on ANY of these printers for the current user,
145    printing is denied.
146   
147  * Is this feature robust ?
148 
149    It should be. However, beware of integrity problems. LDAP has no
150    sense of database integrity, and PostgreSQL constraints have not
151    yet been fully implemented. The code actually *tries* to forbid
152    circular printers groups, but if you create printer groups with
153    another tool (e.g. psql or gq), then you are mostly on you
154    own to not create infinite loops.
155   
156  * How is computed the job's price ? 
157 
158    A job's price is computed with this formula :
159   
160      SUM((NbPages * PricePerPage) + PricePerJob)
161     
162    For current printer and all the printers groups it is
163    a member of, if any.
164    This may be difficult to grasp, but offers unprecedented
165    flexibility.
166
167  * My question isn't answered there, can you help ? 
168 
169    Sure. Ask your question to the mailing list. If this is a
170    frequently asked question, or if your problem is on the contrary
171    very specific, it will probably be added to this document.
172   
173    You can also ask questions by IRC :
174   
175        /server irc.freenode.net
176        /join #pykota
177       
178Send any new questions to Jerome Alet - <alet@librelogiciel.com>
Note: See TracBrowser for help on using the browser.