TITLE
    LaserWriter: PostScript Code to Center Page
Article ID:
Created:
Modified:
19568
4/3/96
7/7/99

TOPIC

    I have noticed the output on my Color LaserWriter is not exactly centered on the page. It is most evident on the startup page because the rectangle border printed on the page is slightly off center. On the LaserWriter 8500 I have a duplexer, and the front and back prints do not line up properly because the image is off center as well.


DISCUSSION

    This can happen with any LaserWriter, and it has most notably been reported with recent shipments of LaserWriter 8500 printers. The margins, while in most cases considered within tolerance, may not be to the specification that the user would like. LaserWriter margins can be calibrated however, using the PostScript setmargins operator.

    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.

    The PostScript SETMARGINS operator can be used to adjust the left/right and top/bottom margins. Use Apple Printer Utility 2.0 or later to download the PostScript code after inserting the desired <yoffset> and <xoffset> values. The default values (0,0) as shipped from Apple provide the best settings when used with Apple printer drivers and the wide variety of software applications on the market.

    The PostScript SetMargins syntax is as follows: <yoffset> <xoffset> setmargins

    Positive integers increase the top and left margins; negative numbers decrease them. Each unit is a single device pixel (1/300 inch), or roughly 1/4 point.

    The setmargins operator is in statusdict, and must be executed outside the server loop so the changes will persist across power cycles. Try using the following configuration to start with since it shifts the page image to the left 20 pixels and leaves the x offset unchanged. The changes are permanently stored in the non-volatile RAM on the I/O controller board so that the changes can persist through power cycles.
    %=========================================================
    % Begin PostScript code
    %
    serverdict begin 0 exitserver
    statusdict begin
    -20 0 setmargins
    %
    % End PostScript code
    %=========================================================

    By altering the margin values, you should be able to center the Color LaserWriter 12/600 PS page image. The setmargins operator changes the position of the image on the page without affecting the image size.

    The following PostScript code prints a page showing the current margin settings and a one point rectangle border around the imageable area. Print this page before modifying the original settings to maintain a record of the initial values as shipped from the factory. The initial values are likely to be set to zero for both the yoffset and the xoffset.
    %=========================================================
    % Begin PostScript code
    %
    /str 32 string def     %Define a 32 character string for later use.
    /Times-Roman findfont  %Lookup font in fontdict and push it on stack

    15 scalefont setfont   %Push size, scale, and make it the current font.
    72 700 moveto          %One inch over, and 700 72nds up.
    statusdict begin       %We'll be using two operators from statusdict.
    (Margins for )         %Push the leading text on the stack.
    show                   %Show the topmost string from the stack at 72
    % 700.
    str                    %Push an empty string of 32 length on stack.
    printername            %Puts the LaserWriter name in the string.
    show                   %Show it.
    72 680 moveto          %Move back to 1 inch left, and down 20 points.
    margins                %Push top and left margins onto stack.
    (  Xoffset set to: )   %Push leading string onto stack.
    show                   %Show it.
    str                    %Push an empty string.
    cvs show               %Convert left margin into the string and show it.
    72 660 moveto          %Do the same thing again for the top margin.
    (  Yoffset set to: )
    show str cvs show
    clippath stroke        %Draw a frame around the page border

    showpage               %print out the page.
    %
    % End PostScript code
    %=========================================================

    To prepare PostScript code for downloading, copy or type the above code into a text document using a word processor or text editor such as SimpleText. The comments following the % characters are not necessary, they are included as reference material, but are not necessary to make the PostScript code work. Once the code is entered, save it as a text file, then use the Apple Printer Utility 2.0 (or later) software that shipped with the printer to download the PostScript files.

    Note: When copying text from some browsers, invisible characters may be copied that will cause a postcript offending command error when the file is sent to the printer. In this case you can either try a different browser, retype the text manually, or use a text editor that can delete non-printing characters.

Document Information
Product Area: Printers
Category: LaserWriters
Sub Category: Color LaserWriter 12/600 PS

Copyright © 2000 Apple Computer, Inc. All rights reserved.