LaserWriter IIf/g & Non-Apple Driver: Default Crops Top Line

When printing from a Sun workstation, the Apple LaserWriter IIf printer cuts off the top line of the image. Claris Tech Support has several other LaserWriter IINTs that work fine. We tried a new LaserWriter llf logic board and got the same results. We then installed a LaserWriter IINT logic board and the issue went away.

We are printing with transcript, system 4.0.3. The printer is connected serially (RS-232) at 19200 baud. The same thing happens at 9600 baud.

This information was provided by Claris Corporation on 16 March 1998, and incorporated into Apple Computer's Tech Info Library.

This cropping action is caused by the LaserWriter IIf and IIg defaulting to a standard paper size of lettersmall. Normally, printing from an Apple Macintosh Computer to a LaserWriter will also generate a lettersmall size image unless a user specifically checks the "Larger Print Area" option in the LaserWriter driver's Page Setup dialog. If this is done, the size will enlarge to letter, otherwise the driver requests a lettersmall size image. Because you are printing from a Sun workstation, you aren't using the LaserWriter driver and will see whatever defaults the different LaserWriter models use. This is the basic cause of the issue.


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

Published Date: Feb 18, 2012