Caution:
=========
If you choose to use the PostScript code provided in this article, you assume all risks involved in making these changes. PostScript code, if not entered correctly, can place the LaserWriter into a condition requiring service.
We also verified that the "setdefaultpapertray" command was not accepted by the LaserWriter Pro 810. Typically, most PostScript level 2 printers have compatibility operators for PostScript level 1 code so we are unsure why "setdefaultpapertray" is not working. However, there are other ways to choose paper trays:
1) The "setpapertray" compatibility operator can be used for the LaserWriter Pro 810 with the following values below:
0 for the Upper tray
1 for the Middle tray
2 for the Lower tray
4 for the Manual tray
Thus, "statusdict begin 1 setpapertray end" will use the Middle tray for printing.
NOTE: Since this command does not exit the PS server loop, the paper tray selection is valid ONLY for the current job being printed.
By the way, this command does not work if the PostScript file being downloaded was generated by LaserWriter 8.x driver. This is because the paper selection code in LaserWriter 8.x driver overrides any code sent beforehand.
2) The following segments of code (taken from the LaserWriter Pro 810 PPD) will also select the various paper trays:
% Upper tray
currentpagedevice /InputAttributes get
0 get dup
null eq {pop}
{ dup
/InputAttributes
1 dict dup /Priority [0 1 2 3] put
put setpagedevice
} ifelse
%Middle tray
currentpagedevice /InputAttributes get
1 get dup
null eq {pop}
{ dup
/InputAttributes
1 dict dup /Priority [1 0 2 3] put
put setpagedevice
} ifelse
%Lower tray
currentpagedevice /InputAttributes get
2 get dup
null eq {pop}
{ dup
/InputAttributes
1 dict dup /Priority [2 0 1 3] put
put setpagedevice
} ifelse
%Manual feed
<</ManualFeed true>> setpagedevice╩