Let Mac users unclog print queues

mac-osxprintingqueue

In one of the schools I work at, I was told that users are having trouble printing — that the print queues keep getting jammed, and they are prompted for a password that they don't have to unjam them.

Our users are using Macs running OS X 10.5.7. The computers are printing directly to a network printer (ie. without going through a print server first).

I found out how to determine which machines have problems:

lpstat -o -p

shows which jobs are in the queue, and states things about the printers. On a problem computer, it ends with this:

printer CJHS_WestLab_HP1320 disabled since Wed Dec 16 09:35:54 2009 -
    /usr/libexec/cups/backend/lpd failed

I think the reason that print jobs are failing is because somehow, the printer is defaulting to using size A4 paper — and students here use US Letter-sized paper exclusively. The job then goes to the printer, which starts blinking until you hit one button to print anyway, or another to cancel the job.

I have two questions:

  • how can I enforce a US Letter page size (in a script?)
  • can I let users clear the queue themselves? enable them to pause and unpause printers?
    • if not, is there a good script to run to purge the queues?

I can see that as an admin, I can purge print jobs in these ways:

  • I found a nice script that'll clear the queues every two minutes — but surely there is a more elegant solution to the problem!? [I'll take something that works over something that is elegant, but elegant + works == goodness].
  • And, with just a little more searching … cancel -a –. It still prompts for someone who belongs to the lpadmin group, and it doesn't resume stuck printers … but it is really useful to know, for fixing things as an admin.

I also found this Mac OS X hint that negates the requirement for users to be in the lpadmin group by editing /etc/cups/cupsd.conf . This sounds great — I'm just worried that it'll be stomped on by a software update.

Still, I can't help but feel that there is something I'm overlooking, and that there is a better solution to this problem. (And I'd love to know why the default page size is A4, and how to fix that.)

Best Answer

To avoid messing with cupsd.conf (and risking stompage), you can add users to the _lpadmin group:

sudo dseditgroup -o edit -a fred _lpadmin

or just add everyone:

sudo dseditgroup -o edit -t group -a everyone _lpadmin

BTW, membership in _lpadmin grants both the ability to manage queues, and also configure printer settings; if you just want to grant queue management, I believe you can do that by adding people to _lpoperator instead.

As for avoiding A4, my first thought is to edit the printer's ppd file to remove all mention of the cursed PageSize -- but this is not something I know anything about...