blob: 54f09f66415744d74882b9492b9171f9a5c921e6 [file] [log] [blame]
%!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