| %!PS-Adobe-3.0 |
| %%BoundingBox: 0 0 612 792 |
| %%Pages: 1 |
| %%LanguageLevel: 1 |
| %%DocumentData: Clean7Bit |
| %%DocumentSuppliedResources: procset testprint/2.3 |
| %%DocumentNeededResources: font Helvetica Helvetica-Bold Times-Roman |
| %%Creator: Michael Sweet, Apple Inc. |
| %%CreationDate: D:20070606214000+0500 |
| %%Title: Test Page |
| %%EndComments |
| %%BeginProlog |
| %%BeginResource procset testprint 2.3 0 |
| % |
| % PostScript test page for CUPS. |
| % |
| % Copyright (c) 2007-2011 Apple Inc. |
| % Copyright (c) 1993-2007 Easy Software Products |
| % |
| % Licensed under Apache License v2.0. See the file "LICENSE" for more |
| % information. |
| % |
| /SEXTANT { % Draw a color wheel sextant... |
| % (name) white radius r g b SEXTANT - |
| % Loop through 100 shades... |
| 0 0.010101 0.98 { |
| % Set the color... |
| dup 0.75 le { % Get "white" value |
| % Start from black |
| dup 0.75 div % val2 = val / 0.75 |
| |
| 0 index 5 index mul % R = R * val2 |
| 1 index 5 index mul % G = G * val2 |
| 2 index 5 index mul % B = B * val2 |
| |
| 4 -1 roll pop % Discard val2 |
| } { |
| % Fade to white |
| dup neg 1 add 4 mul % val2 = (1 - val) * 4 |
| |
| 0 index 5 index mul % R = R * val2 |
| 1 index neg 1 add add % + (1 - val2) |
| 1 index 5 index mul % G = G * val2 |
| 2 index neg 1 add add % + (1 - val2) |
| 2 index 5 index mul % B = B * val2 |
| 3 index neg 1 add add % + (1 - val2) |
| |
| 4 -1 roll pop % Discard val2 |
| } ifelse |
| setrgbcolor % Set the color... |
| |
| % Draw the polygon... |
| newpath % Start a new path... |
| dup 5 index mul % r1 = radius * val |
| 0 0 3 -1 roll 0 60 arc % Draw the inner arc |
| |
| dup 0.010101 add 5 index mul% r2 = (radius + 0.010101) * val |
| 0 0 3 -1 roll 60 0 arcn % Draw the outer arc |
| |
| closepath % Close the path |
| fill % Fill it... |
| |
| pop % Pop value... |
| } for |
| |
| % Draw a line around the polygons... |
| pop pop pop dup % Pop R, G, B, start |
| 0 setgray % Black |
| newpath |
| 0 0 moveto % Center |
| 0 0 3 -1 roll 0 60 arc % Arc around octant |
| closepath % Back to center |
| stroke % Stroke it... |
| |
| % Draw the label... |
| dup % Save radius |
| dup 30 cos mul % X = radius * cos(30) |
| exch 30 sin mul % Y = radius * sin(30) |
| moveto % Position label |
| |
| gsave |
| 30 rotate % Rotate label |
| dup 0.05 mul % Offset to the right |
| exch -0.05 mul % and down... |
| rmoveto % Offset label |
| show % Show label |
| grestore |
| } bind def |
| /CENTER { % Draw centered text |
| % (name) CENTER - |
| dup stringwidth pop % Get the width of the string |
| 0.5 mul neg 0 rmoveto % Shift left 1/2 of the distance |
| show % Show the string |
| } bind def |
| /RIGHT { % Draw right-justified text |
| % (name) RIGHT - |
| dup stringwidth pop % Get the width of the string |
| neg 0 rmoveto % Shift left the entire distance |
| show % Show the string |
| } bind def |
| /NUMBER { % Draw a number |
| % power n NUMBER - |
| 1 index 1 eq { % power == 1? |
| round cvi exch pop % Convert "n" to integer |
| } { |
| 1 index mul round exch div % Truncate extra decimal places |
| } ifelse |
| 100 string cvs show % Convert to a string and show it... |
| } bind def |
| /CUPSLOGO { % Draw the CUPS logo |
| % height CUPSLOGO |
| % Start with a big C... |
| /Helvetica findfont 1 index scalefont setfont |
| 0 setgray |
| 0 0 moveto |
| (C) show |
| |
| % Then "UNIX Printing System" much smaller... |
| /Helvetica-Bold findfont 1 index 9 div scalefont setfont |
| 0.25 mul |
| dup dup 2.0 mul moveto |
| (UNIX) show |
| dup dup 1.6 mul moveto |
| (Printing) show |
| dup 1.2 mul moveto |
| (System) show |
| } bind def |
| %%EndResource |
| %%EndProlog |
| %%Page: 1 1 |
| gsave |
| |
| % Determine the imageable area and device resolution... |
| initclip newpath clippath pathbbox % Get bounding rectangle |
| 72 div /pageTop exch def % Get top margin in inches |
| 72 div /pageRight exch def % Get right margin in inches |
| 72 div /pageBottom exch def % Get bottom margin in inches |
| 72 div /pageLeft exch def % Get left margin in inches |
| |
| 4 setlinewidth % Draw wide lines |
| 0 setgray closepath stroke % Draw a clipping rectangle |
| |
| /pageWidth pageRight pageLeft sub def % pageWidth = pageRight - pageLeft |
| /pageHeight pageTop pageBottom sub def% pageHeight = pageTop - pageBottom |
| |
| 72 72 dtransform % Get device resolution per inch |
| /yResolution exch abs def % yResolution = abs(yres) |
| /xResolution exch abs def % xResolution = abs(xres) |
| |
| % Figure out the sizes of things... |
| /wheelSize % size of wheels |
| pageWidth pageHeight lt |
| { pageWidth 9 mul } |
| { pageHeight 7 mul } |
| ifelse def |
| |
| % Create fonts... |
| /bigFont /Helvetica-Bold findfont % bigFont = Helvetica-Bold |
| pageHeight 3 mul scalefont def % size = pageHeight * 3 (nominally 33) |
| |
| /mediumFont /Helvetica findfont % mediumFont = Helvetica |
| pageHeight 1.5 mul scalefont def % size = pageHeight * 1.5 (nominally 16.5) |
| |
| /smallFont /Times-Roman findfont % smallFont = Times-Roman |
| pageHeight scalefont def % size = pageHeight (nominally 11) |
| |
| % Draw rulers along the edges... |
| /CENTIMETER 72 2.54 div def |
| /MILLIMETER 72 25.4 div def |
| |
| /Times-Roman findfont % Font for ruler numbers |
| 11 scalefont setfont % 11 points |
| |
| gsave % Left side inches |
| pageLeft 72 mul 0 translate % Offset left edge |
| |
| 1 setlinewidth % Draw normal lines |
| 72 72 pageTop 72 mul { % Height inches |
| dup dup |
| 0 exch moveto 24 0 rlineto stroke % Draw tic mark |
| 24 exch pageHeight sub moveto % Draw number |
| 72 div cvi 10 string cvs RIGHT |
| } for |
| |
| 0.5 setlinewidth % Draw thin lines |
| 18 18 pageTop 72 mul { % 1/4 inches |
| 0 exch moveto 15 0 rlineto stroke % Draw tic mark |
| } for |
| |
| 9 9 pageTop 72 mul { % 1/8 inches |
| 0 exch moveto 6 0 rlineto stroke % Draw tic mark |
| } for |
| grestore |
| |
| gsave % Bottom inches |
| 0 pageBottom 72 mul translate % Offset bottom edge |
| |
| 1 setlinewidth % Draw normal lines |
| 72 72 pageRight 72 mul { % Width inches |
| dup dup |
| 0 moveto 0 24 rlineto stroke % Draw tic mark |
| 3 add 27 pageHeight sub moveto % Draw number |
| 72 div cvi 10 string cvs show |
| } for |
| |
| 0.5 setlinewidth % Draw thin lines |
| 18 18 pageRight 72 mul { % 1/4 inches |
| 0 moveto 0 15 rlineto stroke % Draw tic mark |
| } for |
| |
| 9 9 pageRight 72 mul { % 1/8 inches |
| 0 moveto 0 6 rlineto stroke % Draw tic mark |
| } for |
| grestore |
| |
| gsave % Right side centimeters |
| pageRight 72 mul 0 translate % Offset right edge |
| |
| 1 setlinewidth % Draw normal lines |
| CENTIMETER CENTIMETER |
| pageTop 72 mul { % Height centimeters |
| 0 exch moveto -24 0 rlineto stroke% Draw tic mark |
| } for |
| 1 1 pageTop 2.54 mul { % Height labels |
| dup |
| -24 exch CENTIMETER mul |
| pageHeight sub moveto % Draw number |
| cvi 10 string cvs show |
| } for |
| |
| 0.5 setlinewidth % Draw thin lines |
| 0 0.5 CENTIMETER mul |
| pageTop 72 mul { % 1/2 centimeters |
| 0 exch moveto -15 0 rlineto stroke% Draw tic mark |
| } for |
| 0 MILLIMETER pageTop 72 mul { % Millimeters |
| 0 exch moveto -6 0 rlineto stroke % Draw tic mark |
| } for |
| grestore |
| |
| gsave % Top centimeters |
| 0 pageTop 72 mul translate % Offset top edge |
| |
| 1 setlinewidth % Draw normal lines |
| CENTIMETER CENTIMETER |
| pageRight 72 mul { % Width centimeters |
| 0 moveto 0 -24 rlineto stroke % Draw tic mark |
| } for |
| 1 1 pageRight 2.54 mul { % Width labels |
| dup |
| CENTIMETER mul 3 add -24 moveto % Draw number |
| cvi 10 string cvs show |
| } for |
| |
| 0.5 setlinewidth % Draw thin lines |
| 0 0.5 CENTIMETER mul |
| pageRight 72 mul { % 1/2 centimeters |
| 0 moveto 0 -15 rlineto stroke % Draw tic mark |
| } for |
| 0 MILLIMETER pageRight 72 mul { % Millimeters |
| 0 moveto 0 -6 rlineto stroke % Draw tic mark |
| } for |
| grestore |
| |
| % Offset page to account for lower-left margin... |
| pageLeft 72 mul |
| pageBottom 72 mul |
| translate |
| |
| % Set text font and color... |
| mediumFont setfont % Font |
| 0 setgray % Color |
| 1 setlinewidth % Draw normal lines |
| |
| % Draw the color wheel... |
| gsave |
| % Position the wheel on the left side... |
| pageWidth 18 mul % x = pageWidth * 1/4 * 72 |
| pageHeight 54 mul % y = pageHeight * 3/4 * 72 |
| translate |
| |
| % Size the wheel... |
| wheelSize |
| |
| % Draw the colors... |
| dup (C) 3 -1 roll 0 1 1 SEXTANT 60 rotate |
| dup (M) 3 -1 roll 1 0 1 SEXTANT 60 rotate |
| dup (Y) 3 -1 roll 1 1 0 SEXTANT 60 rotate |
| dup (R) 3 -1 roll 1 0 0 SEXTANT 60 rotate |
| dup (G) 3 -1 roll 0 1 0 SEXTANT 60 rotate |
| dup (B) 3 -1 roll 0 0 1 SEXTANT 60 rotate |
| |
| pop |
| grestore |
| |
| % Label the color wheel... |
| pageWidth 18 mul % x = pageWidth * 1/4 * 72 |
| pageHeight 43 mul % y = pageHeight * 19/32 * 72 |
| moveto % Position the text |
| (Color Wheel) CENTER % Show the text centered |
| |
| % Draw the gray ramp... |
| gsave |
| % Position the gray ramp in the center... |
| pageWidth 36 mul % x = pageWidth * 1/2 * 72 |
| pageHeight 54 mul % y = pageHeight * 3/4 * 72 |
| wheelSize sub % - wheelSize |
| translate |
| |
| % Loop through 100 shades... |
| 0 0.010101 0.98 { |
| % Set the color... |
| dup setgray % Set the grayscale... |
| |
| % Draw the polygon... |
| newpath % Start a new path... |
| |
| wheelSize -0.2 mul % X = -wheelSize / 5 |
| 1 index 2 mul wheelSize mul % Y = val * 2 * wheelSize |
| moveto % Move there... |
| |
| wheelSize 0.4 mul 0 rlineto % Right side... |
| |
| wheelSize 0.2 mul % X = wheelSize / 5 |
| 1 index 0.010101 add 2 mul wheelSize mul |
| % Y = (val + 0.010101) * 2 * wheelSize |
| lineto % Move there... |
| |
| wheelSize -0.4 mul 0 rlineto % Left side... |
| |
| closepath % Close the path |
| fill % Fill it... |
| |
| pop % Pop value... |
| } for |
| |
| 0 setgray % Black |
| |
| newpath % Start a new path |
| wheelSize -0.2 mul 0 moveto % Bottom left |
| wheelSize 0.4 mul 0 rlineto % Bottom right |
| 0 wheelSize 2 mul rlineto % Upper right |
| wheelSize -0.4 mul 0 rlineto % Upper left |
| closepath % Close the path |
| stroke % Stroke it... |
| |
| 0 wheelSize -0.2 mul moveto % Center bottom for label |
| (K) CENTER % Center K at bottom |
| |
| 0 wheelSize 2.05 mul moveto % Center top for label |
| (W) CENTER % Center W at top |
| grestore |
| |
| % Label the gray ramp... |
| pageWidth 36 mul % x = pageWidth * 1/2 * 72 |
| pageHeight 43 mul % y = pageHeight * 19/32 * 72 |
| moveto % Position the text |
| (Gray Ramp) CENTER % Show the text centered |
| |
| |
| % Draw radial lines... |
| gsave |
| 0 setlinewidth % 1 pixel lines |
| |
| % Position the lines on the left side... |
| pageWidth 54 mul % x = pageWidth * 3/4 * 72 |
| pageHeight 54 mul % y = pageHeight * 3/4 * 72 |
| translate |
| |
| % Size the wheel... |
| wheelSize |
| |
| % Loop at 1 degree increments |
| 0 1 359 { |
| pop % Discard angle - not used |
| 0 0 moveto % Start line at the center |
| dup 0 lineto % Draw to the radius |
| 1 rotate % Rotate 1 degree |
| } for |
| |
| pop % Discard radius - not needed anymore |
| stroke % Draw lines... |
| |
| grestore |
| |
| % Label the lines... |
| pageWidth 54 mul % x = pageWidth * 3/4 * 72 |
| pageHeight 43 mul % y = pageHeight * 19/32 * 72 |
| moveto % Position the text |
| (1 Degree Radial Lines) CENTER % Show the text centered |
| |
| % Imageable area... |
| pageHeight 15 mul % Height of imageable area |
| |
| pageWidth 4.5 mul % x = pageWidth * 1/16 * 72 |
| pageHeight 35.5 mul % y = pageHeight * 1/2 * 72 |
| 2 index sub % y -= height |
| pageWidth 28 mul % width = pageWidth * 1/4 * 72 |
| 3 index % height |
| 0.5 setgray rectfill % Draw a shadow |
| |
| pageWidth 4 mul % x = pageWidth * 1/16 * 72 |
| pageHeight 36 mul % y = pageHeight * 1/2 * 72 |
| 2 index sub % y -= height |
| pageWidth 28 mul % width = pageWidth * 3/8 * 72 |
| 3 index % height |
| 4 copy 1 setgray rectfill % Clear the box to white |
| 0 setgray rectstroke % Draw a black box around it... |
| |
| pop % Discard height |
| |
| % Label the imageable area... |
| pageWidth 4 mul % x = pageWidth * 1/16 * 72 |
| pageHeight 37 mul % y = pageHeight * 1/2 * 72 |
| moveto % Position the text |
| mediumFont setfont % Font |
| (Imageable Area) show % Show the text |
| |
| smallFont setfont % Font |
| pageWidth 14 mul % x = pageWidth * 3/16 * 72 |
| pageHeight 36 mul % y = pageWidth * 1/2 * 72 |
| pageHeight -2 mul add % y -= 2 * smallFont height |
| |
| % Page Size inches |
| 2 copy moveto % Move to x & y |
| (Page Size: ) RIGHT % Label |
| 100 pageWidth NUMBER % pageWidth |
| (x) show % "x" |
| 100 pageHeight NUMBER % pageHeight |
| (in) show % "in" |
| |
| % Page Size millimeters |
| pageHeight sub % Move down... |
| |
| 2 copy moveto % Move to x & y |
| 10 pageWidth 25.4 mul NUMBER % pageWidth |
| (x) show % "x" |
| 10 pageHeight 25.4 mul NUMBER % pageHeight |
| (mm) show % "mm" |
| |
| % Lower-left inches |
| pageHeight 2 mul sub % Move down... |
| |
| 2 copy moveto % Move to x & y |
| (Lower-Left: ) RIGHT % Label |
| 100 pageLeft NUMBER % pageLeft |
| (x) show % "x" |
| 100 pageBottom NUMBER % pageBottom |
| (in) show % "in" |
| |
| % Lower-left millimeters |
| pageHeight sub % Move down... |
| |
| 2 copy moveto % Move to x & y |
| 10 pageLeft 25.4 mul NUMBER % pageLeft |
| (x) show % "x" |
| 10 pageBottom 25.4 mul NUMBER % pageBottom |
| (mm) show % "mm" |
| |
| % Upper-right inches |
| pageHeight 2 mul sub % Move down... |
| |
| 2 copy moveto % Move to x & y |
| (Upper-Right: ) RIGHT % Label |
| 100 pageRight NUMBER % pageRight |
| (x) show % "x" |
| 100 pageTop NUMBER % pageTop |
| (in) show % "in" |
| |
| % Upper-right millimeters |
| pageHeight sub % Move down... |
| |
| 2 copy moveto % Move to x & y |
| 10 pageRight 25.4 mul NUMBER % pageRight |
| (x) show % "x" |
| 10 pageTop 25.4 mul NUMBER % pageTop |
| (mm) show % "mm" |
| |
| % Resolution dots-per-inch |
| pageHeight 2 mul sub % Move down... |
| |
| 2 copy moveto % Move to x & y |
| (Resolution: ) RIGHT % Label |
| 1 xResolution NUMBER % xResolution |
| (x) show % "x" |
| 1 yResolution NUMBER % yResolution |
| (dpi) show % "dpi" |
| |
| % Resolution dots-per-meter |
| pageHeight sub % Move down... |
| |
| moveto % Move to x & y |
| 1 xResolution 39.27 mul NUMBER % xResolution |
| (x) show % "x" |
| 1 yResolution 39.27 mul NUMBER % yResolution |
| (dpm) show % "dpm" |
| |
| % Interpreter Information... |
| pageHeight 15 mul % Height of interpreter information |
| |
| pageWidth 40.5 mul % x = pageWidth * 9/16 * 72 |
| pageHeight 35.5 mul % y = pageHeight * 1/2 * 72 |
| 2 index sub % y -= height |
| pageWidth 28 mul % width = pageWidth * 1/4 * 72 |
| 3 index % height |
| 0.5 setgray rectfill % Draw a shadow |
| |
| pageWidth 40 mul % x = pageWidth * 9/16 * 72 |
| pageHeight 36 mul % y = pageHeight * 1/2 * 72 |
| 2 index sub % y -= height |
| pageWidth 28 mul % width = pageWidth * 3/8 * 72 |
| 3 index % height |
| 4 copy 1 setgray rectfill % Clear the box to white |
| 0 setgray rectstroke % Draw a black box around it... |
| |
| pop % Discard height |
| |
| % Label the interpreter info... |
| pageWidth 40 mul % x = pageWidth * 9/16 * 72 |
| pageHeight 37 mul % y = pageHeight * 1/2 * 72 |
| moveto % Position the text |
| mediumFont setfont % Font |
| (Interpreter Information) show % Show the text |
| |
| smallFont setfont % Font |
| pageWidth 49 mul % x = pageWidth * 11/16 * 72 |
| pageHeight 36 mul % y = pageWidth * 1/2 * 72 |
| pageHeight 2 mul sub % y -= 2 * smallFont height |
| |
| % Language level |
| 2 copy moveto % Move to x & y |
| (PostScript: ) RIGHT % Label |
| (Level ) show % "Level " |
| 1 languagelevel NUMBER % Language level |
| |
| % Version |
| pageHeight 2 mul sub % Move down... |
| 2 copy moveto % Move to x & y |
| (Version: ) RIGHT % Label |
| version show % Version |
| ( \() show % " (" |
| 1 revision NUMBER % Revision |
| (\)) show % ")" |
| |
| % Product |
| pageHeight 2 mul sub % Move down... |
| 2 copy moveto % Move to x & y |
| (Product: ) RIGHT % Label |
| product show % Product name |
| |
| % Serial Number |
| pageHeight 2 mul sub % Move down... |
| moveto % Move to x & y |
| (Serial #: ) RIGHT % Label |
| 1 serialnumber NUMBER % S/N |
| |
| % Draw the label at the top... |
| pageWidth 36 mul % Center of page |
| pageHeight 66 mul % Top of page (11/12ths) |
| moveto % Position text |
| bigFont setfont % Font |
| (Printer Test Page) CENTER % Show text centered |
| |
| % Draw the copyright notice at the bottom... |
| pageWidth 17 mul % Center of page |
| pageHeight 10 mul % Bottom of page |
| moveto % Position text |
| (Printed Using CUPS v2.3.x) show |
| |
| pageWidth 17 mul % Left side of page |
| pageHeight 8 mul % Move down... |
| 2 copy moveto % Position text |
| smallFont setfont % Font |
| (Copyright 2007-2018 Apple Inc., All Rights Reserved. CUPS and the CUPS logo are trademarks) show |
| pageHeight 2 add sub % Move down... |
| 2 copy moveto % Position text |
| (of Apple Inc., One Apple Park Way, Cupertino, CA 95014, USA.) show |
| pageHeight 2 mul 4 add sub % Move down... |
| moveto % Position text |
| (Need help? Contact your operating system vendor or visit "http://www.cups.org/".) show |
| |
| % Then the CUPS logo.... |
| gsave |
| pageWidth 4 mul |
| pageHeight 4 mul |
| translate |
| pageWidth 15 mul CUPSLOGO |
| grestore |
| |
| % Show the page... |
| grestore |
| showpage |
| %%EOF |