[567] | 1 | # $Id$ |
---|
| 2 | |
---|
[576] | 3 | Tea4CUPS : Tee for CUPS |
---|
[567] | 4 | |
---|
[612] | 5 | (c) 2005 Jerome Alet <alet@librelogiciel.com> |
---|
[642] | 6 | (c) 2005 Peter Stuge <stuge-tea4cups@cdy.org> |
---|
[567] | 7 | This program is free software; you can redistribute it and/or modify |
---|
| 8 | it under the terms of the GNU General Public License as published by |
---|
| 9 | the Free Software Foundation; either version 2 of the License, or |
---|
| 10 | (at your option) any later version. |
---|
| 11 | |
---|
| 12 | This program is distributed in the hope that it will be useful, |
---|
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
| 15 | GNU General Public License for more details. |
---|
| 16 | |
---|
| 17 | You should have received a copy of the GNU General Public License |
---|
| 18 | along with this program; if not, write to the Free Software |
---|
[644] | 19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
---|
[567] | 20 | |
---|
| 21 | ============================================================================= |
---|
| 22 | |
---|
[644] | 23 | Tea4CUPS resembles the *nix command 'tee', but is a CUPS backend. |
---|
[567] | 24 | |
---|
[576] | 25 | Tea4CUPS behaves just like any other CUPS backend, but allows you to |
---|
[567] | 26 | transparently send print jobs' datas to any number of outputs : other |
---|
| 27 | CUPS backends, files or pipes. |
---|
| 28 | |
---|
| 29 | This for example allows you to output the same print job on several |
---|
| 30 | printers at the same time, which is not possible with CUPS. |
---|
| 31 | |
---|
[645] | 32 | Another possibility would be for example to send the same document to |
---|
[567] | 33 | a printer, a PDF generator, a Fax, and as an attachment to an email |
---|
| 34 | message, all of this by printing it a single time. |
---|
| 35 | |
---|
[645] | 36 | Tea4CUPS allows this by permitting you to easily plug your own |
---|
| 37 | commands into the very last stage of CUPS' filtering chain. |
---|
[598] | 38 | |
---|
[644] | 39 | Tea4CUPS provides two ways to launch commands : |
---|
| 40 | |
---|
[645] | 41 | - prehooks : these are guaranteed to be launched before the |
---|
[598] | 42 | print job is sent to the real printer. |
---|
[645] | 43 | Any prehook which exits -1 can cancel the |
---|
[603] | 44 | print job. |
---|
[645] | 45 | |
---|
[598] | 46 | - posthooks : these are guaranteed to be launched after the |
---|
[603] | 47 | print job has been sent to the real printer, |
---|
| 48 | unless the job was previously cancelled by a |
---|
| 49 | prehook. |
---|
[645] | 50 | |
---|
[586] | 51 | To help your own commands, Tea4CUPS makes available as part of the |
---|
[617] | 52 | environment several variables which can be used from the |
---|
[586] | 53 | commands you use : |
---|
| 54 | |
---|
| 55 | TEAPRINTERNAME : The print queue name. |
---|
| 56 | TEADIRECTORY : Tea4CUPS output directory. |
---|
| 57 | TEADATAFILE : Full name of Tea4CUPS work file (in $TEADIRECTORY). |
---|
| 58 | TEAJOBSIZE : Job's size in bytes. |
---|
| 59 | TEAMD5SUM : MD5 sum of the job's datas. |
---|
| 60 | TEACLIENTHOST : Client's hostname or IP address. |
---|
| 61 | TEAJOBID : Job's Id. |
---|
| 62 | TEAUSERNAME : Name of the user who launched the print job. |
---|
| 63 | TEATITLE : Job's title. |
---|
| 64 | TEACOPIES : Number of copies requested. |
---|
| 65 | TEAOPTIONS : Options of the print job. |
---|
| 66 | TEAINPUTFILE : Print job's data file or empty when job read from stdin. |
---|
[615] | 67 | TEABILLING : Job's billing code (lp -o job-billing=SomeCode file.ps) |
---|
| 68 | TEACONTROLFILE : Job's IPP message file (usually /var/spool/cups/c?????) |
---|
[645] | 69 | TEASTATUS : Original CUPS backend's exit code : ONLY AVAILABLE FROM |
---|
[603] | 70 | posthooks, obviously. |
---|
[645] | 71 | |
---|
| 72 | In the case you want to use both Tea4CUPS and PyKota, you MUST install |
---|
[590] | 73 | PyKota v1.22alpha2 or higher to avoid a race condition. |
---|
| 74 | |
---|
[627] | 75 | NB : Tea4CUPS requires a version of Python >= 2.1 |
---|
| 76 | |
---|
[567] | 77 | ============================================================================= |
---|
| 78 | |
---|
| 79 | Installation : |
---|
| 80 | -------------- |
---|
| 81 | |
---|
[591] | 82 | 0 - Download Tea4CUPS from : |
---|
[645] | 83 | |
---|
[591] | 84 | http://www.librelogiciel.com/software/Tea4CUPS/action_Presentation |
---|
[645] | 85 | |
---|
| 86 | and extract it : |
---|
| 87 | |
---|
[592] | 88 | $ tar -zxf tea4cups-x.yy.tar.gz |
---|
[645] | 89 | |
---|
[592] | 90 | where x.yy is Tea4CUPS' version number. |
---|
[645] | 91 | |
---|
| 92 | 1 - Copy the 'tea4cups' command into CUPS' backend directory, |
---|
[567] | 93 | for example : |
---|
[645] | 94 | |
---|
[576] | 95 | $ cp tea4cups /usr/lib/cups/backend |
---|
[645] | 96 | |
---|
[644] | 97 | 2 - Restart CUPS in order for this new backend to be detected. |
---|
| 98 | NB : For this to work you need CUPS 1.1.15 or higher. |
---|
| 99 | You can use Tea4CUPS with older versions if you want, but |
---|
| 100 | without autodetection. |
---|
[645] | 101 | |
---|
| 102 | 3 - Either from CUPS' web interface, add new printers with |
---|
[576] | 103 | 'Tea4CUPS managed' in front of the device's name. |
---|
[645] | 104 | |
---|
| 105 | Or by directly modifying CUPS' printers.conf file, prepend |
---|
[576] | 106 | each DeviceURI value with 'tea4cups://', and restart CUPS. |
---|
[644] | 107 | (Use this last method if autodetection doesn't work because |
---|
| 108 | the version of CUPS you use is too old) |
---|
[645] | 109 | |
---|
| 110 | 4 - Copy tea4cups.conf into CUPS' configuration directory (where |
---|
[567] | 111 | cupsd.conf resides) : |
---|
[645] | 112 | |
---|
[576] | 113 | $ cp tea4cups.conf /etc/cups/ |
---|
[645] | 114 | |
---|
| 115 | 5 - Modify tea4cups.conf to suit your needs. Several examples |
---|
[567] | 116 | are included. |
---|
[645] | 117 | |
---|
| 118 | 6 - There's no 6 ! |
---|
| 119 | |
---|
[567] | 120 | ============================================================================= |
---|
| 121 | |
---|
[645] | 122 | Troubleshooting : |
---|
[567] | 123 | ----------------- |
---|
| 124 | |
---|
| 125 | 1 - Set "LogLevel debug2" in CUPS' cupsd.conf |
---|
[645] | 126 | |
---|
[567] | 127 | 2 - Restart CUPS. |
---|
[645] | 128 | |
---|
[576] | 129 | 3 - Set "debug: yes" in the [global] section of tea4cups.conf |
---|
[645] | 130 | |
---|
[567] | 131 | 4 - Print something on a print queue managed |
---|
[576] | 132 | by Tea4CUPS. |
---|
[645] | 133 | |
---|
[567] | 134 | 5 - Look at CUPS' error_log file for diagnostic and error messages. |
---|
[645] | 135 | |
---|
[567] | 136 | ============================================================================= |
---|
[591] | 137 | |
---|
[645] | 138 | CUPS (Common UNIX(r) Printing System) is trademark property of Easy Software |
---|
[591] | 139 | Products. |
---|
| 140 | |
---|
| 141 | You can download CUPS from : |
---|
| 142 | |
---|
| 143 | http://www.cups.org |
---|
| 144 | |
---|
| 145 | ============================================================================= |
---|
[645] | 146 | |
---|
[567] | 147 | Please e-mail bugs to : alet@librelogiciel.com (Jerome Alet) |
---|