Well, that's just cool

While trying to figure out how to get a colour printer to print colour (HP: why the hell would you turn off colour in the PPD for your colour printer? Huh?), I came across this very cool post from Martin Paul, the guy who wrote pca, the best damn Sun patching tool I've come across.

Turns out you can take a new version of printer firmware for your HP printer and print the damned thing to your printer to update it. In particular, he mentions the 79.00FE problem that has plagued me for a while; I'll have to give it a try.

Oh, and the PPD thing -- for the record, there's a new HP 4700dn in town. I'm adding it to Solaris 10, which once you figure out how to do it is relatively simple:

lpadmin -p NewPrinter -p /dev/null -m netstandard_foomatic
lpadmin -p NewPrinter -I PostScript -n /path/to/ppdfile
lpadmin -p NewPrinter -D "HP 666 in Room 212"
lpadmin -p NewPrinter -o dest=newprinter:9100 -o protocol=tcp -o timeout=5
cd /etc/lp/fd
for i in *fd ; do name=`basename $i .fd` ; lpfilter -f NewPrinter -F
$i ; done
accept NewPrinter
enable NewPrinter

Simple, that is, if HP haven't gone and stuck a stanza like this into the PPD on the CD:

*% Print Color as Gray
*% Chose NOT to use Adobe's *ColorModel keyword because color on or
off is simpler

*OpenUI *ColorModel/Print Color as Gray:  Boolean
*OrderDependency: 20 AnySetup *ColorModel
*DefaultColorModel: CMYK
*ColorModel CMYK/Off: "<</ProcessColorModel /DeviceCMYK>> setpagedevice"
*ColorModel Gray/On: "<</ProcessColorModel /DeviceGray>> setpagedevice"
*?ColorModel: "
currentpagedevice /ProcessColorModel get
  /DeviceGray eq {(True)}{(False)}ifelse = flush

*CloseUI: *ColorModel

Took a while to track that down. Yes, I could've used one of the other PPDs on the machine — pretty generic colour Postscript, really — but then they didn't know about the duplexer. And I have to admit this makes it easy to set up a b&w-only queue.