A while back, I wanted to design some banner pages for a shared network printer that would show the name of the host that sent the request (none of the standard CUPS banners report this). It was easy enough to define a custom banner page:
<Printer lj4200> ... JobSheets shared-banner none ... </Printer>
Then, I could drop a modified banner into /usr/share/cups/banners
with the filename “shared-banner”. The banner is just a regular PostScript file, so I could muck around with it. While looking at the “standard” banner, I saw some PS variables being used that had been defined by CUPS:
... (Job ID: ) RIGHT 2 copy % Copy X & Y moveto ({printer-name}-{job-id}) show ...
I couldn’t find documentation on the available variables, but managed to track down some of the list at cupsGetJobs2 in cups/utils.c:
job-id
job-priority
job-k-octets
job-state
time-at-completed
time-at-creation
time-at-processing
job-printer-uri
document-format
job-name
job-originating-user-name
None of these had the sending host listed, so I continued searching. Additional ones are defined in scheduler/ipp.c, including:
printer-name
job-id
job-billing
job-hold-until
job-sheets
job-media-sheets-completed
job-originating-host-name
“job-originating-host-name” did the trick for my banner:
... (Host: ) RIGHT moveto ({job-originating-host-name}) show ...
I’ve seen some other partial lists, but I haven’t found an official complete list. It’d be handy to see this documented better, since some variables aren’t valid until after the job is processed (job-sheets), so it’s only valid in the trailing banner, not the leading banner.
© 2007, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 License.
Might be too late, but now it is documented at http://www.cups.org/documentation.php/doc-1.5/spec-banner.html
Comment by non7top — October 12, 2012 @ 7:42 pm