[1175] | 1 | PyKota'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 | |
---|
[1198] | 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 | |
---|
[1175] | 35 | * How can I make PyKota work with my non-postscript printer under |
---|
| 36 | CUPS ? |
---|
| 37 | |
---|
[1186] | 38 | From version 1.16alpha7, PyKota includes a CUPS backend which |
---|
[1198] | 39 | allows you to use any type of printer and any driver, provided |
---|
| 40 | your printer is not a 'dumb printer' (see above). |
---|
[1175] | 41 | |
---|
[1198] | 42 | * How can I use my 'dumb printer' with CUPS and PyKota. |
---|
[1175] | 43 | |
---|
[1198] | 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 | |
---|
[1199] | 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 | |
---|
[1198] | 80 | * How can I diagnose the problem when something goes wrong ? |
---|
| 81 | |
---|
[1175] | 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 | |
---|
[1186] | 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 |
---|
[1198] | 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). |
---|
[1175] | 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 | |
---|
[1268] | 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 |
---|
[1282] | 116 | set quota on the printer group, instead of (or in addition to) |
---|
| 117 | the printers themselves. |
---|
[1268] | 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. |
---|
[1286] | 146 | |
---|
[1268] | 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 | |
---|
[1286] | 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 | |
---|
[1175] | 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 | |
---|
[1186] | 173 | You can also ask questions by IRC : |
---|
| 174 | |
---|
| 175 | /server irc.freenode.net |
---|
| 176 | /join #pykota |
---|
| 177 | |
---|
[1216] | 178 | Send any new questions to Jerome Alet - <alet@librelogiciel.com> |
---|