| %!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 |