This information was provided by Claris Corporation on 16 March 1998, and incorporated into Apple Computer's Tech Info Library.
Unfortunately, there is another issue with the LaserWriter IIf as it ships with only 2MB of memory. Simply prepending the PostScript "letter" operator would otherwise force a full-size letter image. But because the LaserWriter IIf uses much of its memory for the basic implementation of Level 2 PostScript, it can't expand the frame buffer beyond an A4 small sized image without PhotoGrade enhancement. This means you will need to upgrade the RAM in the LaserWriter IIf to at least 5MB, and even then you'll need to disable PhotoGrade or explicitly request a letter size image.
The process to decide what frame buffer to use depends on these factors:
- How much RAM is installed?
- Is PhotoGrade enabled? (defaults to yes)
- Has the print job requested a specific page size?
- Does the requested size exceed the MaxRasterMemory setting? (Doesn't affect this situation, and requires an in-depth discussion by itself.)
The following table details the frame buffer requirements (in bytes) for the different page sizes, with and without PhotoGrade pre-rendering enhancement.
PhotoGrade
Page Size Off On
----------- ------- -------
b5 741888 2967552
lettersmall 877824 3511296
a4small 924420 3697680
letter 983844 3935376
a4 1015872 4063488
legal 1257344 5029376
If a user prints a job with no requested page size, the LaserWriter IIf or IIg will use the default size of lettersmall. If the job specifies a size, the LaserWriter will try to honor it as closely as possible within its memory limitations. The following table depicts the page size substitution order.
Frame Buffer Substitution Order
-------------------------------
lettergray -> lettersmallgray -> letter -> lettersmall
legalgray -> legal -> lettersmall
a4gray -> a4smallgray -> a4 -> a4small
b5gray -> b5
With the LaserWriter IIf as shipped with 2MB, a request for a letter-size frame buffer would result in a lettersmall (the default). Requesting a4 would result in an a4small frame buffer. The next table shows the maximum page size available for each memory configuration.
MB Largest Page Size
-- ----------------------------
2 a4small, PhotoGrade disabled
4 legal, PhotoGrade disabled
5 a4small, PhotoGrade enabled
8 legal, PhotoGrade enabled
If you upgrade the memory to 4 or 5MB, you'll still need to disable PhotoGrade or specifically request letter if they don't want the interpreter to substitute sizes for them. Prepending the letter operator to the documents would be adequate, or you can disable PhotoGrade one time and leave it alone until you need it later. The following three code segments show, respectively, the letter operator at the start of a job; code to disable PhotoGrade, and code to enable PhotoGrade.
code segment 1
%some sample PostScript with the letter operator prepended
letter
/Helvetica findfont 12 scalefont setfont
72 720 moveto
(This is a test) show
code segment 2
%This code checks to make sure it's running on a IIg or IIf, and then
%disables PhotoGrade in nonvolatile RAM - persisting across power cycles.
statusdict /product get dup
(LaserWriter IIf) ne exch (Apple LaserWriter IIg) ne and
{(This printer likely doesn't support PhotoGrade. Aborting.) ==} if
serverdict begin 0 exitserver
<</PreRenderingEnhance false>> setpagedevice
code segment 3
%This code checks to make sure it's running on a IIg or IIf, and then
%enables PhotoGrade in nonvolatile RAM - persisting across power cycles.
statusdict /product get dup
(LaserWriter IIf) ne exch (Apple LaserWriter IIg) ne and
{(This printer likely doesn't support PhotoGrade. Aborting.) ==} if
serverdict begin 0 exitserver
<</PreRenderingEnhance true>> setpagedevice