HPset Perl script

Long ago and far away, HP had an applet that'd let you tweak the settings of their networked printers. Including the display message. I had much fun setting messages like "Insert 25 cents" and watching freshmen look for the coin slot. Such happiness can be yours as well.

This small script enables you to set printer messages from any (non-firewalled) Unix box. Actually, most perl-capable machines should manage it.


  1. A networked HP printer, HP4M+ or later, with JetDirect card. Tested on 4M+, 8150DN, and 8500 so far. The later machines appear to lack lower case characters, for some reason, and all of them have varying lengths of strings they can display.
  2. A host able to connect to said printer and run Perl.


      hpset -m my.printer.com 'Chode Rules'
      hpset -m hp.marketing.example.com 'YOU ARE WEASELS'
Actually, the quotes are optional:
      hpset -m hp2.example.edu Lunch wasn't Really Chicken
There's also a -p argument to set the port, but as far as I know they all use port 9100. To reset the message, either reset the printer or run hpset with the default message, usually 'READY'.


As of 9/8/04, I got a fix for the blank-page bug from Hugo Mallinson - thanks!


See this HP page for a list of PCL commands.


Humorless cow-orkers and sysadmins may not be amused. I doubt anyone could construe this as causing harm, but local repercussions are your problem if you use this.

Get The Code

  • hpset

    Navigation Links

  • Back to code page
  • Back to home page