Every version of macOS I've used has allowed me to open the print queue and drag a print job from one printer to another queue. This is especially helpful when (for example) you accidentally send a job to a printer that is offline or unavailable. Today I tried to print, macOS defaulted to the last used printer, which was in my workplace. I tried to move the print job to my home printer, but the Print Center doesn't allow anything other than pausing or canceling the job. I don't see anything obvious in the CUPS interface. I don't have to do this often, but it's truly obnoxious to see a functional system dialog be replaced with one that doesn't have anywhere near the same features. Is there a workaround?
-
1Yes, it looks like they haven't implemented this in the new app. Make sure you submit feedback to Apple.– benwiggyCommented Oct 10, 2023 at 6:49
-
3Submitted as a bug report. Technically, it's a regression - feature that no longer works...– dr.nixonCommented Oct 12, 2023 at 20:38
2 Answers
As you'll likely already found yourself, this is a regression and moving jobs between queues using the UI is not implemented (yet).
However, this Apple Discussions post suggests that you can still move jobs using the command line (links to manpages added by me):
- Open Terminal
- Run
lpstat
to find the print jobs
For me this looks like this:
➜ lpstat
EPSON_XP_640_Series-32 user 311296 Tue Feb 27 13:09:45 2024
- For each print job listed ("foobar_printer-XXX" where the name of the printer is "foobar_printer", and the print job is "XXX"), run
lpmove
XXX new_printer
.
If I would've had another printer named e.g. "HP_LaserJet_M402dn" I would then run the command:
lpmove 32 HP_LaserJet_M402dn
As can be seen on the lpmove
man page, you can also move all jobs from one printer to the other, e.g. in my case:
lpmove EPSON_XP_640_Series HP_LaserJet_M402dn
-
I wonder if this could be turned into a script that moves all pending jobs to one given printer. You could then have Shortcut workflows or Automator apps that incorporated them.– benwiggyCommented Feb 29 at 10:36
-
2I am not too familiar with Shortcut/Automator, but the
lpmove
command can move all jobs from one printer to the other:lpmove source_printer destination_printer
. Commented Feb 29 at 12:24 -
For the first example,
lpmove EPSON_XP_640_Series-32 HP_LaserJet_M402dn
should also work (according to the man page).– nohillside ♦Commented Feb 29 at 13:32
You can also move jobs using the CUPS web interface to printers at:
http://localhost:631/
You'll need to enable the job control via the terminal command:
cupsctl WebInterface=yes
Then click on Jobs at the top of the web interface, select a job, and then click on Move and select the printer you want to move the job to from the list.