First and foremost when dealing with this issue is to assure that the printer is capable of duplex printing: not all printers are. How can you tell? With HP printers, you can tell from the model number. An example is model number 4015dn: here, the 'd' means that it is a duplex capable printer (and 'n' means it operates over networking). Workgroup printers that do duplex will often have a duplexer that is added to their paper path, being a conspicuous, boxy thing hanging off the end of the printer.
So, what actually does control duplex printing?
In PostScript printing, it is the PostScript itself...
The PostScript gets generated by the application software in conjunction with
the PostScript printer driver installed on the computer where the print job is
being created.
That driver allows you to select duplex, commonly in an options presentation.
What this does is generate the following PostScript instruction:
%%BeginFeature: *Duplex DuplexNoTumble
<</Duplex true /Tumble false>>
setpagedevice
%%EndFeature
What if the PostScript does not contain that duplex instruction?
In this case, one of two things will then govern duplex.
First, the PostScript driver may generate PJL which tells the printer to do duplex.
PJL is HP's Printer Job Language, which consists of lines of simple text,
presented to the printer ahead of the job proper, which tell the printer to
handle the job in a certain way.
Many printer brands other than HP understand PJL.
The PJL instruction for duplex is:
@PJL SET DUPLEX=ON
The next natural question is, what happens if not even this PJL is sent with the
job?
In this case, the duplex-capable printer will follow the duplex configuration
parameter which the printer administrator set into it.
This is a default, governing what to do if nothing in the job says what
to do.
Commonly, printers capable of duplex are configured to print duplex by default,
which is common sense in that it saves paper.
Note well that this printer configuration value is a default, not a
mandate: any plex specification that comes with the job overrides this.
But what if the printing is IPDS rather than PostScript?
In this case, the print server controls duplex, according to what it found in
the job originally submitted to it (which may have been PostScript, PCL, etc.).
This is AFP stuff, which the server administrator would have set up.
If you are certain that the printer is duplex-capable, proceed as follows:
%%BeginFeature: *Duplex None <</Duplex false>> setpagedevice %%EndFeaturedue to how the application wanted output to be produced.