| CUPS does the “print accounting” by passing nearly
every job through the “pstops” filter. This one does,
amongst other things, the page counting. Output of this filter there may
be piped into other filters (like pstoraster --> rastertopcl) or sent to
the printer directly (if it is a PostScript® printer). In any case, this works for network, parallel, serial or
USB printers the same. For pstops to work, it needs
DSC, Document Structuring Convention compliant
PostScript® (or near-equivalent) as input. So it calculates the pages
during filtering on the print server and writes info about every single
page (what time, which user, which job-ID and -name, which printer, how
many copies of which pages of the document, how many kilo-bytes?) into
/var/log/cups/page_log . By the way: on my personal “wishlist” is a hack of
“webalizer” to read and analyze the page_log and give a
similar output. Anyone? However, it is not giving correct results in
the following cases: The printer jams and maybe therefor throw away the job (real live
experience; or maybe throwing away the job because of problems with the
data format) Jobs printed as “raw” are always counted as size of 1
page (and maybe multiple copies).
Therefore the page accounting of CUPS is “only”
an approximation (in many cases an excellent or at least good one, in
others a quite poor one). The only reliable print count is the one
done by the internal printer counter. (Because this is the one you pay
for, if you are on a “click price” or similar.) Some, by
far not most, printers can be queried remotely for that information
via SNMP (Simple Network Management Protocol). That
means, in a bigger network with many different printers there
is just no completely reliable and accurate page
accounting tool! |
| See the man page for the lpoptions command. You
may investigate a CUPS-enabled box about any option of its available
printers. There is no need to have the printer installed locally. As
long as the printer is available locally (through the CUPS
“printer browsing” feature), it will also work
remote. To query for a printers' option typing
lpoptions -p
HitachiDDP70MicroPress
-l will give a long listing of all
available options as read from the PPD file for the given
Hitachi-Printer (in my case installed on remote server
transmeta). Remote server Transmeta and its CUPS daemon as well
as the localhost's CUPS daemon need to be up and running for this to
succeed. |
| You know that for PostScript® printer manufacturers it is
“legal” to define their own internal names and procedures
even for standard PostScript® options. As long as the driver is able to
retrieve the option from the PPD and show it to the user in a way that
he understands it everything is OK. But what do you
do, if you want to use some obscure printer options on the command line?
How do you find out its exact syntax? Let's take an example. Looking at Hitachi's DDP70 printer and how
it implements duplex printing is revealing somehow. How do you tell how
to print double sided? duplex or Duplex? Or another name altogether?. lpoptions -h transmeta -p Hitachi_DDP70_ClusterPrintingSystem -l | grep uplex
This leads to the output TR-Duplex/Duplex: False *True
This is to be interpreted like follows: The name of the investigated option is
TR-Duplex ; Behind the slash you see the translation of the option, as it
should be shown in a GUI or Web interface
(“Duplex”); The option may take one of the two values
False or True ; The present setting is True to be
recognized by the marking with a star * .
To override the present default setting (duplex) and print a job
in simplex, you need to use the following command: lpr -P Hitachi_DDP70_ClusterPrintingSystem -o TR-Duplex=False /path/to/your/printjob
|
| Use the lphelp command which may be installed
on your system locally. There is not yet a man page for
lphelp. lphelp infotecP450
This lists the available options for the named printer. It is
nicely formatted and does explain every available option and how to use
it. You can query different printers' options at once: lphelp infotec7410color DANKA_fullcolor_D2000 HP_ColorLaserJet8550
It also works for PPD files. Just specify the path to the
PPD: lphelp /home/kurt/PPDs/HP-ColorLaserJet8550.ppd
|
Would you like to comment or contribute an update to this page?
Send feedback to the TDE Development Team