Manual Duplex printing for Mac (and/or Linux)

ALMOST, but no cigar yet: the 4th step only gets the odd pages from the 1st step, and then takes the even pages from that set... That's no good. I will delete this some time later, unless I think of something smart. (The 1st step can also be made to create two files right away, but you need the confirmation dialog. Maybe there's some "restart" or parallel processing in Automator.


For a Mac, Automator is your friend:

  • Open Automator

  • Select "Print Plugin" (Print plugins are workflows that are available in the print dialog. They accept PDF versions of the document being printed. Prior to 10.6 Snow Leopard, you might not get this choice until you're about to save your workflow, rather than when creating an empty workflow. Should work the same.)

  • Drag the following items into the workflow to the right:

    1. "Extract Odd & Even Pages", and select "Odd"

    2. "Print Finder Items"

    3. "Ask for confirmation", write some instructions

    4. "Extract Odd & Even Pages", and select "Even"

    5. "Print Finder Items"

  • Save it. It will end up in ~/Library/PDF Services/ and hence be part of the PDF menu in the Print dialog.

enter image description here
Automator to the rescue

enter image description here
PDF menu in Print dialog

When the total of pages is odd, you'll have to fiddle a bit with the first or last page of the first run. (If you'd put the whole stack back into the printer, then the last page might be left in the paper tray when you're done. Just try and adjust the instructions in step 3.)


There's a project on sourceforge called duplexpr that may do what you want.

http://sourceforge.net/projects/duplexpr/

I wrote it a long time ago and couldn't generate any interest in it so I have not updated it. If I can get an active user base of > 0, or someone interested in helping to develop or test it, I'll work on it again. I even have newer development code that has a few additional features. I'm also playing around with making it gui-enabled so it can be used from the desktop without going to the command line.

It's a set of bash scripts that emulate duplex printing for non-duplex printers. I've used it every day - for many years now.

One unique feature is that it allows batch two-sided printing so you can print several jobs at once and you only have to flip and reinsert the whole stack of paper once instead of once for each job.

The current version (on sourceforge) has a few problems. The first is that they changed bash. To get the current scripts to work (after you download them), the first line of each script has to be changed from #!/bin/sh to #!/bin/bash

The other problem is a design issue. Printers vary in how they handle paper. Some put out pages with the printed side face-up and some with the printed side face-down, etc. This means that there has to be more than one duplex printing algorithm. duplexpr currently supports only one algorithm. It works perfectly on printers like the HP Deskjet 720 and 895 (old) and the HP C4480 (newer). It almost works on my HP Laserjets (1006 and 1020). On these, all the pages it prints are correct and in the correct order, but each page needs to be flipped over manually after the job has finished printing (they come out 2/1, 4/3 ... instead of 1/2, 3/4).

Check it out and get back to me if you are interested in using it. You can send me email via the sourceforge project page (url above).

A few more thoughts:

duplexpr doesn't really address printing ranges of pages. You can do that by using the "print to file" and "page range" options available in most application print dialogs.

Once you have the output in a file (in the default (at least for Linux) postscript format), you have a number of options. You can then run it through duplexpr (which, by the way, handles the odd number of pages problem mentioned by other posters).

If you can handle using the command line interface (cli), then the lp command - or lpr, whichever you have installed, has options you can specify for odd pages only, even pages only and you can even give it page ranges if necessary. If that's not to your liking, there's an amazing little gui utility called xpp that will do all that and more. It will even let you create an alias for one of your existing printers that will print only even or odd pages. I use it all the time to recover from paper jams and multiple page feeds during the second pass of duplex printing (the second sides) so I can finish printing any one-sided pages didn't get trashed without starting from scratch.

With any of these manual methods, if you have an odd number of pages, you can just send a formfeed to the printer to eject the last page:

echo -n $'\f' | lp

will do it or you can create a file with just a formfeed in it and send it to lp. This works on every printer I have tried so far.

Either way, it's a lot easier than remembering not to reinsert the last page, etc.

HTH

Joe


Look at HP Two-sided printing software.