%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86e Copyright 2001 Radical Eye Software %%Title: ijs_spec.dvi %%Pages: 16 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: Helvetica-Bold Times-Roman Times-Bold Times-Italic %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -q ijs_spec.dvi -o ijs_spec.ps %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2002.01.22:1612 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "1 July 1998", % filename = "8r.enc", % email = "tex-fonts@@tug.org", % docstring = "Encoding for TrueType or Type 1 fonts % to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both % ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} def end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N /@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X /yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginProcSet: color.pro %! TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll }repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def /TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ /currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC /Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC /Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ 0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ 0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ 0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ 0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ 0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end %%EndProcSet TeXDict begin 39158280 55380996 1000 600 600 (ijs_spec.dvi) @start %DVIPSBitmapFont: Fa cmmi9 9 2 /Fa 2 63 df<171C177EEE01FEEE07FCEE1FF0EE7FC0923801FF00ED07FCED1FF0ED7FC0 4A48C7FCEC07FCEC1FF0EC7FC04948C8FCEB07FCEB1FF0EB7FC04848C9FCEA07FCEA1FF0 EA7FC048CAFCA2EA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FCEB01FF9038007F C0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE 01FEEE007E171C2F2E7AA93C>60 D<127012FCB4FCEA7FC0EA1FF0EA07FCEA01FF38007F C0EB1FF0EB07FCEB01FF9038007FC0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED 01FF9238007FC0EE1FF0EE07FCEE01FEA2EE07FCEE1FF0EE7FC0923801FF00ED07FCED1F F0ED7FC04A48C7FCEC07FCEC1FF0EC7FC04948C8FCEB07FCEB1FF0EB7FC04848C9FCEA07 FCEA1FF0EA7FC048CAFC12FC12702F2E7AA93C>62 D E %EndDVIPSBitmapFont /Fb 133[60 66 66 1[66 73 40 66 47 1[73 73 73 106 33 2[33 73 73 40 66 73 66 73 66 1[66 5[80 80 113 1[86 73 80 86 93 80 93 86 100 73 86 66 33 86 93 73 80 86 86 86 86 6[40 66 66 66 66 66 66 66 66 66 66 1[33 46[{TeXBase1Encoding ReEncodeFont}59 119.552 /Helvetica-Bold rf /Fc 134[46 2[46 51 28 46 32 2[51 51 74 23 2[23 1[51 1[46 51 46 51 46 10[55 2[55 4[60 69 6[51 55 1[60 64[51 2[{TeXBase1Encoding ReEncodeFont}25 83.022 /Helvetica-Bold rf /Fd 137[37 42 23 32 32 1[42 42 42 60 23 2[23 42 42 23 37 42 37 1[42 11[60 1[42 51 1[51 2[69 46 1[37 28 2[51 51 60 55 51 7[28 42 42 42 42 42 42 42 42 42 42 23 21 28 42[42 2[{TeXBase1Encoding ReEncodeFont}46 83.022 /Times-Italic rf /Fe 134[33 33 50 33 37 21 29 29 1[37 37 37 54 21 33 21 21 37 37 21 33 37 33 37 37 9[62 2[42 37 46 1[46 1[50 1[42 1[33 25 54 3[54 1[46 46 1[37 1[50 2[25 37 2[37 3[37 37 37 1[19 25 19 1[37 25 25 25 36[37 2[{TeXBase1Encoding ReEncodeFont}53 74.7198 /Times-Italic rf /Ff 135[42 2[46 28 32 37 1[46 42 46 69 23 2[23 46 42 28 37 46 37 46 42 9[83 60 1[55 46 4[60 3[42 32 3[55 60 60 14[42 42 42 42 2[21 46[{ TeXBase1Encoding ReEncodeFont}34 83.022 /Times-Bold rf /Fg 107[37 37 22[17 1[37 42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 1[42 1[28 23 28 51 60 60 78 60 60 51 46 55 60 46 60 60 74 51 60 32 28 60 60 46 51 60 55 55 60 3[47 2[23 42 42 42 42 42 42 42 42 42 42 23 21 28 21 2[28 28 28 1[69 1[42 34 30[46 46 2[{TeXBase1Encoding ReEncodeFont}83 83.022 /Times-Roman rf /Fh 135[80 112 80 88 48 80 56 1[88 88 88 128 40 80 1[40 88 88 1[80 88 80 1[80 9[135 3[96 104 1[96 1[104 1[88 2[40 3[96 3[104 9[80 80 80 80 80 80 80 2[40 46[{ TeXBase1Encoding ReEncodeFont}37 143.462 /Helvetica-Bold rf /Fi 104[172 35[96 67 2[105 105 4[48 3[96 3[96 10[115 11[96 18[96 3[96 96 96 96 1[48 46[{TeXBase1Encoding ReEncodeFont}16 172.154 /Helvetica-Bold rf /Fj 139[69 1[80 1[126 126 126 1[57 2[57 3[115 1[115 1[115 13[138 2[138 5[115 57 70[126 2[{TeXBase1Encoding ReEncodeFont}15 206.584 /Helvetica-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop Black 0 TeXcolorgray Black Black 867 140 a Fj(IJS)58 b(Pr)l(otocol)g(Speci\002cation)1021 493 y Fi(V)-9 b(er)m(sion)48 b(0.32)f(\227)h(17)f(Jan)h(2002)1714 769 y Fh(Raph)39 b(Le)n(vien)396 1126 y Fg(This)21 b(document)d(contains)h(a)i (speci\002cation)e(for)h(the)g(IJS)h(protocol,)d(which)i(is)h(intended) e(to)h(mak)o(e)g(it)h(easier)f(to)g(deplo)o(y)396 1234 y(raster)n(-based)f(printer)h(dri)n(v)o(ers)f(in)h(a)g(wide)h(v)n (ariety)e(of)h(en)m(vironments,)d(including)h(Unix)i(desktops.)-2 1730 y Fh(1.)39 b(Intr)m(oduction)396 2004 y Fg(IJS)21 b(is,)g(\002rst)g(and)f(foremost,)e(a)j(protocol)d(for)i(transmission)f (of)h(raster)g(page)g(images.)g(The)f(protocol)g(is)i(a)g(f)o(airly)396 2111 y(traditional)e(client-serv)o(er)g(design.)g(In)h(general,)f(the)h (client)g(sends)g(one)g(or)g(more)f(page)h(images)g(to)g(the)g(serv)o (er)m(,)f(along)396 2219 y(with)i(v)n(arious)e(metadata.)g (Communication)f(is)j(through)d(simple)i(\223commands\224,)e(which)i (are)g(essentially)396 2327 y(size-pre\002x)o(ed)f(pack)o(ets.)g(The)h (client)g(sends)h(a)f(command)e(to)j(the)f(serv)o(er)m(,)f(then)g(w)o (aits)j(for)d(a)i(response)e(command,)396 2435 y(either)h(A)m(CK)h(or)f (N)m(AK.)396 2709 y(Since,)g(in)g(the)g(typical)f(IJS)i(scenario,)e (there)g(is)i(only)e(one)g(client)h(for)f(an)o(y)g(gi)n(v)o(en)g(serv)o (er)m(,)f(it)j(may)e(be)h(helpful)f(to)h(denote)396 2817 y(the)g(client)h(role)f(as)g("master")g(and)g(the)g(serv)o(er)f(role)h (as)h("sla)n(v)o(e".)f(Ho)n(we)n(v)o(er)m(,)e(this)j(document)d(uses)j (the)f(terms)g("client")396 2925 y(and)g("serv)o(er".)396 3199 y(On)g(Unix)g(systems,)h(the)f(serv)o(er)f(\223speaks\224)h(IJS)h (through)d(stdin)i(and)g(stdout.)f(One)h(consequence)e(of)i(this)h (design)396 3307 y(decision)f(is)h(that)f(the)g(serv)o(er)g(can)g(be)g (in)m(v)n(ok)o(ed)e(remotely)-5 b(,)18 b(for)i(e)o(xample)f(through)f Ff(ssh)p Fg(.)p Black -85 3425 a Fe(*)p Black 46 w(It')m(s)g(not)h (clear)g(yet)g(how)g(useful)h(this)e(will)g(be)o(,)h(b)o(ut)g(at)g (least)g(people)g(can)h(e)o(xperiment)f(with)g(it.)396 3699 y Fg(Other)h(forms)g(of)f(communication)f(\(such)h(as)i(domain)e (sock)o(ets\))h(may)g(be)g(useful,)f(as)i(well,)g(b)n(ut)f(are)g(not)g (speci\002ed)g(in)396 3807 y(this)h(v)o(ersion.)396 4081 y(There)f(are)g(also)g(a)h(lar)o(ge)e(number)f(of)i(things)g(that)g (the)h(IJS)f(speci\002cation)g(does)g Fd(not)h Fg(address.)f(It)g(does) g(not)g(pro)o(vide)396 4189 y(strings)g(for)g(a)h(UI)f(\(although)e (the)i(parameter)f(names)h(and)f(v)n(alues)h(may)g(be)g(used)g(as)h(a)f (f)o(allback)g(when)f(higher)n(-le)n(v)o(el)396 4297 y(mechanisms)g(designed)g(to)i(pro)o(vide)d(these)i(f)o(ail\).)g(It)h (does)f(not)f(address)h(the)g(task)h(of)f(disco)o(v)o(ering)d(printers) j(or)396 4405 y(dri)n(v)o(ers.)f(It)h(is)i(not)d(designed)g(to)i (dispatch)e(jobs)h(to)h(multiple)e(printers.)g(It)i(does)f(not)g(pro)o (vide)e(queue)h(management)396 4513 y(features.)h(It)g(does)g(not)g (address)g(higher)e(le)n(v)o(el)i(imaging)f(models,)h(or)f(fonts.)h (These)g(are)g(important)f(components)f(of)i(a)396 4621 y(printing)f(system,)h(and)g(should)f(be)h(addressed)f(by)h(other)f (modules)g(and)h(interf)o(aces.)p Black 3842 5569 a Fd(1)p Black eop %%Page: 2 2 2 1 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 94 a Fh(2.)39 b(Wire)h(pr)m(otocol)396 368 y Fg(After)20 b(a)h(brief)e (initialization)h(handshak)o(e,)e(all)j(IJS)g(communication)c(occurs)i (through)f Fd(commands)p Fg(.)h(Most)h(of)g(these)396 476 y(are)g(sent)h(from)e(the)h(client)g(to)h(the)f(serv)o(er)m(,)f(b)n (ut)h(three)g(\(IJS_CMD_PONG,)f(IJS_CMD_A)m(CK,)h(and)396 584 y(IJS_CMD_N)m(AK\))g(are)g(sent)g(from)g(the)g(serv)o(er)f(to)h (the)h(client.)396 858 y(W)m(ith)g(the)f(e)o(xception)e(of)i (IJS_CMD_PING,)g(the)g(appropriate)e(response)h(to)h(a)h(command)d (sent)j(from)e(the)h(serv)o(er)f(is)396 966 y(either)h(IJS_CMD_A)m(CK)g (or)g(IJS_CMD_N)m(AK.)396 1240 y(The)g(initialization)g(handshak)o(e)e (is)j(as)g(follo)n(ws.)f(First,)g(the)g(client)h(sends)f(the)g(string)g ("IJS\\n\\252v1\\n")d(\(with)j(C)396 1348 y(backslash)g(escaping\).)e (Upon)i(receipt)f(of)h(this)h(string,)f(the)g(serv)o(er)f(sends)h(the)h (string)e("IJS\\n\\253v1\\n".)f(At)i(this)396 1456 y(point,)f(the)i (client)f(may)g(send)g(IJS)g(commands)f(to)h(the)g(serv)o(er)-5 b(.)396 1730 y(IJS)21 b(is)g(designed)e(to)h(ha)n(v)o(e)g(a)h(simple)f (wire)g(encoding.)e(Inte)o(gers)h(are)h(encoded)e(as)j(32-bit)e (big-endian)f(\(ie)j(\223netw)o(ork)396 1838 y(order\224\))e(v)n (alues.)g(The)h(encoding)e(for)i(a)g(command)f(is)i(as)g(follo)n(ws:) 396 2039 y Ff(T)-8 b(able)21 b(1.)f(W)o(ir)o(e)g(Encoding)h(of)e(IJS)i (Commands)p 396 2142 1206 4 v 396 2142 V 396 2268 4 127 v 400 2244 a Fg(Command)p 997 2268 V 253 w(4-byte)e(inte)o(ger)p 1598 2268 V 396 2272 1206 4 v 396 2272 V 396 2398 4 127 v 400 2373 a(Size)h(in)h(bytes)p 997 2398 V 176 w(4-byte)e(inte)o(ger)p 1598 2398 V 396 2401 1206 4 v 396 2401 V 396 2528 4 127 v 805 2503 a(Ar)o(guments)p 1598 2528 V 396 2654 V 957 2629 a(...)p 1598 2654 V 396 2657 1206 4 v 396 2657 V 396 2931 a(The)h(ar)o(guments)e(are)i(simply)g(concatenated.)e(F)o(or)i (v)n(ariable)f(size)i(ar)o(guments,)d(the)i(size)h(is)g(either)f(e)o (xplicitly)f(gi)n(v)o(en)g(as)396 3039 y(another)g(ar)o(gument,)f(or)m (,)h(in)h(the)g(case)h(of)f(the)g(last)h(ar)o(gument,)d(is)j(inferred)e (from)g(the)h(size)h(of)f(the)g(command.)396 3313 y(A)h(wire)f (encoding)e(for)i(a)h(typical)e(command)f(is)k(gi)n(v)o(en)c(belo)n(w) -5 b(.)19 b(This)i(command)d(sets)j(the)f(Dpi)h(parameter)d(to)j(600.) 396 3515 y Ff(T)-8 b(able)21 b(2.)f(Example)h(W)o(ir)o(e)e(Encoding)p 396 3618 3501 4 v 396 3618 V 396 3744 4 127 v 400 3719 a Fc(Encoded)j(b)n(ytes)p 1296 3744 V 312 w(Field)p 2097 3744 V 606 w(V)-5 b(alue)p 3893 3744 V 396 3748 3501 4 v 396 3748 V 396 3874 4 127 v 400 3849 a Fg(00)19 b(00)h(00)g(0c)p 1296 3874 V 510 w(Command)p 2097 3874 V 452 w(IJS_COMMAND_SET_P)-8 b(ARAM)p 3893 3874 V 396 3877 3501 4 v 396 3877 V 396 4004 4 127 v 400 3979 a(00)19 b(00)h(00)g(16)p 1296 4004 V 505 w(Size)g(in)h(bytes)p 2097 4004 V 375 w(22)p 3893 4004 V 396 4007 3501 4 v 396 4007 V 396 4133 4 127 v 400 4108 a(00)e(00)h(00)g(00)p 1296 4133 V 505 w(Job)g(id)p 2097 4133 V 599 w(0)p 3893 4133 V 396 4137 3501 4 v 396 4137 V 396 4371 4 235 v 400 4238 a(00)f(00)h(00)g(03)p 1296 4371 V 505 w(Size)g(of)g(parameter)f(name)p 2097 4371 V 13 w(3)p 3893 4371 V 396 4374 3501 4 v 396 4374 V 396 4501 4 127 v 400 4476 a(44)g(70)h(69)p 1296 4501 V 609 w(P)o(arameter)f(name)p 2097 4501 V 263 w(Dpi)p 3893 4501 V 396 4504 3501 4 v 396 4504 V 396 4630 4 127 v 400 4605 a(36)g(30)h(30)p 1296 4630 V 609 w(V)-9 b(alue)p 2097 4630 V 610 w(600)p 3893 4630 V 396 4634 3501 4 v 396 4634 V 396 4883 a(The)20 b(numerical)f(v)n(alues)h(of)g(the)g (commands)e(are:)p Black 3842 5569 a Fd(2)p Black eop %%Page: 3 3 3 2 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black 396 72 a Ff(T)-8 b(able)21 b(3.)f(Numerical)h(V)-8 b(alues)21 b(of)f(IJS)g(Commands)p 396 167 2401 4 v 396 167 V 396 293 4 127 v 400 268 a Fc(Command)p 2193 293 V 1389 w(V)-5 b(alue)p 2794 293 V 396 296 2401 4 v 396 296 V 396 423 4 127 v 400 398 a Fg(IJS_CMD_A)m(CK)p 2193 423 V 1245 w(0)p 2794 423 V 396 426 2401 4 v 396 426 V 396 552 4 127 v 400 528 a(IJS_CMD_N)m(AK)p 2193 552 V 1240 w(1)p 2794 552 V 396 556 2401 4 v 396 556 V 396 682 4 127 v 400 657 a(IJS_CMD_PING)p 2193 682 V 1223 w(2)p 2794 682 V 396 685 2401 4 v 396 685 V 396 812 4 127 v 400 787 a(IJS_CMD_PONG)p 2193 812 V 1191 w(3)p 2794 812 V 396 815 2401 4 v 396 815 V 396 942 4 127 v 400 917 a(IJS_CMD_OPEN)p 2193 942 V 1200 w(4)p 2794 942 V 396 945 2401 4 v 396 945 V 396 1071 4 127 v 400 1046 a(IJS_CMD_CLOSE)p 2193 1071 V 1154 w(5)p 2794 1071 V 396 1075 2401 4 v 396 1075 V 396 1201 4 127 v 400 1176 a(IJS_CMD_BEGIN_JOB)p 2193 1201 V 974 w(6)p 2794 1201 V 396 1204 2401 4 v 396 1204 V 396 1331 4 127 v 400 1306 a(IJS_CMD_END_JOB)p 2193 1331 V 1057 w(7)p 2794 1331 V 396 1334 2401 4 v 396 1334 V 396 1460 4 127 v 400 1435 a(IJS_CMD_CANCEL_JOB)p 2193 1460 V 896 w(8)p 2794 1460 V 396 1464 2401 4 v 396 1464 V 396 1590 4 127 v 400 1565 a(IJS_CMD_Q)o(UER)g(Y_ST)d(A)f(TUS)p 2193 1590 V 798 w(9)p 2794 1590 V 396 1593 2401 4 v 396 1593 V 396 1720 4 127 v 400 1695 a(IJS_CMD_LIST_P)h(ARAMS)p 2193 1720 V 866 w(10)p 2794 1720 V 396 1723 2401 4 v 396 1723 V 396 1849 4 127 v 400 1824 a(IJS_CMD_ENUM_P)g(ARAM)p 2193 1849 V 843 w(11)p 2794 1849 V 396 1853 2401 4 v 396 1853 V 396 1979 4 127 v 400 1954 a(IJS_CMD_SET_P)g(ARAM)p 2193 1979 V 940 w(12)p 2794 1979 V 396 1982 2401 4 v 396 1982 V 396 2109 4 127 v 400 2084 a(IJS_CMD_GET_P)g(ARAM)p 2193 2109 V 926 w(13)p 2794 2109 V 396 2112 2401 4 v 396 2112 V 396 2238 4 127 v 400 2213 a(IJS_CMD_BEGIN_P)g(A)m(GE)p 2193 2238 V 915 w(14)p 2794 2238 V 396 2242 2401 4 v 396 2242 V 396 2368 4 127 v 400 2343 a(IJS_CMD_SEND_D)m(A)f(T)h (A_BLOCK)p 2193 2368 V 624 w(15)p 2794 2368 V 396 2371 2401 4 v 396 2371 V 396 2498 4 127 v 400 2473 a(IJS_CMD_END_P)g(A)m(GE) p 2193 2498 V 998 w(16)p 2794 2498 V 396 2501 2401 4 v 396 2501 V 396 2627 4 127 v 400 2602 a(IJS_CMD_EXIT)p 2193 2627 V 1227 w(17)p 2794 2627 V 396 2631 2401 4 v 396 2631 V 396 2880 a(A)21 b(state)g(transition)e(diagram)g(for)h(serv) o(ers)f(supporting)f(a)j(maximum)d(of)i(one)g(acti)n(v)o(e)g(job)f(at)i (a)g(time)f(is)h(gi)n(v)o(en)e(belo)n(w:)396 4062 y currentpoint currentpoint translate 0.5 0.5 scale neg exch neg exch translate 396 4062 a @beginspecial 0 @llx 0 @lly 912 @urx 257 @ury 9120 @rwi @setspecial %%BeginDocument: state.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: state.eps %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Sat Dec 22 01:59:04 2001 %%For: raph@pixel.artofcode.com (Raph Levien,,,) %%BoundingBox: 0 0 912 257 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 257 moveto 0 0 lineto 912 0 lineto 912 257 lineto closepath clip newpath -24.1 355.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06299 0.06299 sc % % Fig objects follow % /Times-Roman ff 180.00 scf sf 9225 2475 m gs 1 -1 sc (IJS_LIST_PARAMS) col0 sh gr /Times-Roman ff 180.00 scf sf 9225 2700 m gs 1 -1 sc (IJS_QUERY_PARAM) col0 sh gr /Times-Roman ff 180.00 scf sf 9225 2925 m gs 1 -1 sc (IJS_SET_PARAM) col0 sh gr /Times-Roman ff 180.00 scf sf 9225 3150 m gs 1 -1 sc (IJS_GET_PARAM) col0 sh gr /Times-Roman ff 180.00 scf sf 9225 3375 m gs 1 -1 sc (IJS_QUERY_STATUS) col0 sh gr % Arc 7.500 slw gs clippath 8630 2937 m 8620 2997 l 8769 3022 l 8656 2973 l 8779 2962 l cp eoclip n 8746.9 2733.8 259.3 -139.4 114.3 arc gs col0 s gr gr % arrowhead n 8779 2962 m 8656 2973 l 8769 3022 l col0 s % Arc gs clippath 12183 2983 m 12176 3043 l 12326 3061 l 12211 3017 l 12333 3001 l cp eoclip n 12293.2 2761.4 272.0 -133.8 111.2 arc gs col0 s gr gr % arrowhead n 12333 3001 m 12211 3017 l 12326 3061 l col0 s % Arc gs clippath 8518 3029 m 8472 3067 l 8569 3184 l 8516 3073 l 8616 3145 l cp eoclip n 10170.0 1755.0 2115.5 38.1 141.9 arc gs col0 s gr gr % arrowhead n 8616 3145 m 8516 3073 l 8569 3184 l col0 s % Arc gs clippath 11736 2597 m 11776 2552 l 11663 2451 l 11733 2554 l 11623 2496 l cp eoclip n 10032.9 4384.8 2498.6 -131.7 -46.7 arc gs col0 s gr gr % arrowhead n 11623 2496 m 11733 2554 l 11663 2451 l col0 s % Arc gs clippath 8176 2550 m 8222 2512 l 8124 2395 l 8179 2507 l 8078 2434 l cp eoclip n 7091.9 3365.8 1386.1 -140.0 -37.6 arc gs col0 s gr gr % arrowhead n 8078 2434 m 8179 2507 l 8124 2395 l col0 s % Arc gs clippath 5659 2551 m 5701 2509 l 5594 2401 l 5658 2508 l 5551 2444 l cp eoclip n 4545.0 3548.9 1524.5 -137.6 -42.4 arc gs col0 s gr gr % arrowhead n 5551 2444 m 5658 2508 l 5594 2401 l col0 s % Arc gs clippath 3435 2985 m 3386 3020 l 3476 3142 l 3430 3028 l 3525 3106 l cp eoclip n 4600.2 2225.5 1420.0 38.3 146.2 arc gs col0 s gr gr % arrowhead n 3525 3106 m 3430 3028 l 3476 3142 l col0 s % Arc gs clippath 5952 3028 m 5907 3068 l 6008 3181 l 5951 3072 l 6053 3141 l cp eoclip n 7087.5 2115.0 1486.5 39.5 140.5 arc gs col0 s gr gr % arrowhead n 6053 3141 m 5951 3072 l 6008 3181 l col0 s % Arc gs clippath 3055 2553 m 3089 2503 l 2962 2419 l 3046 2511 l 2929 2469 l cp eoclip n 1935.0 4072.5 1917.3 -125.9 -54.1 arc gs col0 s gr gr % arrowhead n 2929 2469 m 3046 2511 l 2962 2419 l col0 s % Arc gs clippath 5866 3075 m 5816 3109 l 5901 3235 l 5859 3119 l 5951 3201 l cp eoclip n 8918.1 1112.7 3658.2 32.2 147.0 arc gs col0 s gr gr % arrowhead n 5951 3201 m 5859 3119 l 5901 3235 l col0 s % Ellipse n 675 2790 284 284 0 360 DrawEllipse gs col0 s gr % Ellipse n 3240 2790 284 284 0 360 DrawEllipse gs col0 s gr % Ellipse n 8370 2790 284 284 0 360 DrawEllipse gs col0 s gr % Ellipse n 3240 5355 284 284 0 360 DrawEllipse gs col0 s gr % Ellipse n 5805 2790 284 284 0 360 DrawEllipse gs col0 s gr % Ellipse n 11925 2790 284 284 0 360 DrawEllipse gs col0 s gr % Polyline gs clippath 3210 5055 m 3270 5055 l 3270 4903 l 3240 5023 l 3210 4903 l cp eoclip n 3240 3060 m 3240 5040 l gs col0 s gr gr % arrowhead n 3210 4903 m 3240 5023 l 3270 4903 l col0 s /Times-Roman ff 180.00 scf sf 3060 5400 m gs 1 -1 sc (exit) col0 sh gr /Times-Roman ff 180.00 scf sf 11700 2880 m gs 1 -1 sc (in_page) col0 sh gr /Times-Roman ff 180.00 scf sf 7965 4950 m gs 1 -1 sc (IJS_CMD_CANCEL_JOB) col0 sh gr /Times-Roman ff 180.00 scf sf 2025 4095 m gs 1 -1 sc (IJS_CMD_EXIT) col0 sh gr /Times-Roman ff 180.00 scf sf 1215 2520 m gs 1 -1 sc (\(IJS_CMD_PONG\)) col0 sh gr /Times-Roman ff 180.00 scf sf 1350 2070 m gs 1 -1 sc (IJS_CMD_PING) col0 sh gr /Times-Roman ff 180.00 scf sf 3960 1935 m gs 1 -1 sc (IJS_CMD_OPEN) col0 sh gr /Times-Roman ff 180.00 scf sf 4005 3870 m gs 1 -1 sc (IJS_CMD_CLOSE) col0 sh gr /Times-Roman ff 180.00 scf sf 9045 4095 m gs 1 -1 sc (IJS_CMD_END_PAGE) col0 sh gr /Times-Roman ff 180.00 scf sf 12150 3420 m gs 1 -1 sc (IJS_CMD_SEND_DATA_BLOCK) col0 sh gr /Times-Roman ff 180.00 scf sf 9180 1755 m gs 1 -1 sc (IJS_CMD_BEGIN_PAGE) col0 sh gr /Times-Roman ff 180.00 scf sf 6345 1845 m gs 1 -1 sc (IJS_CMD_BEGIN_JOB) col0 sh gr /Times-Roman ff 180.00 scf sf 6660 3870 m gs 1 -1 sc (IJS_CMD_END_JOB) col0 sh gr /Times-Roman ff 180.00 scf sf 3015 2880 m gs 1 -1 sc (closed) col0 sh gr /Times-Roman ff 180.00 scf sf 540 2835 m gs 1 -1 sc (init) col0 sh gr /Times-Roman ff 180.00 scf sf 5625 2835 m gs 1 -1 sc (open) col0 sh gr /Times-Roman ff 180.00 scf sf 8145 2835 m gs 1 -1 sc (in_job) col0 sh gr $F2psEnd rs %%EndDocument @endspecial 396 4062 a currentpoint currentpoint translate 1 0.5 div 1 0.5 div scale neg exch neg exch translate 396 4062 a -2 4473 a Fb(2.1.)34 b(IJS_CMD_A)-5 b(CK)396 4747 y Fg(This)21 b(command)d(is)j(sent)f(from) g(serv)o(er)f(to)h(the)g(client)h(in)f(response)f(to)i(a)f(command)e (from)i(the)g(client,)g(to)g(indicate)396 4855 y(successful)g (completion.)e(There)i(are)g(no)g(ar)o(guments)e(speci\002c)i(to)g (this)h(command.)d(Ho)n(we)n(v)o(er)m(,)g(for)i(commands)e(\(such)396 4963 y(as)j(IJS_CMD_GET_P)-8 b(ARAM\))19 b(which)h(request)f(a)i(v)n (alue,)e(this)i(v)n(alue)f(is)h(returned)d(as)j(the)f(ar)o(gument)e(in) i(an)h(A)m(CK)396 5071 y(command.)p Black 3842 5569 a Fd(3)p Black eop %%Page: 4 4 4 3 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 77 a Fb(2.2.)34 b(IJS_CMD_NAK)396 351 y Fg(This)21 b(command)d(is)j(sent)f(from)g(serv) o(er)f(to)h(the)g(client)h(in)f(response)f(to)i(a)f(command)e(from)i (the)g(client,)g(to)g(indicate)g(an)396 459 y(error)-5 b(.)20 b(There)f(is)i(one)f(inte)o(ger)f(ar)o(gument,)e(which)j(is)h (the)f(error)f(code.)h(A)g(list)i(of)e(error)f(codes)g(is)j(gi)n(v)o (en)c(in)p 0 TeXcolorgray 21 w(Section)i(6)p Black(.)-2 797 y Fb(2.3.)34 b(IJS_CMD_PING)396 1071 y Fg(The)20 b(PING)h(command)d(is)j(sent)f(from)g(the)g(client)g(to)g(the)h(serv)o (er)e(as)i(part)f(of)g(the)g(connection)e(setup.)i(It)g(contains)g(one) 396 1179 y(inte)o(ger)f(ar)o(gument,)f(which)i(is)h(the)f(100)f(times)i (the)f(real-v)n(alued)e(v)o(ersion)h(number)f(of)i(the)h(lar)o(gest)e (IJS)i(protocol)396 1287 y(understood)d(by)i(the)g(client.)g(Thus,)f (for)h(the)g(v)o(ersion)f(of)h(the)g(protocol)f(described)g(in)h(this)h (document,)d(the)i(ar)o(gument)396 1395 y(is)h(30.)f(The)g(appropriate) e(response)h(to)h(a)h(PING)f(is)h(a)g(PONG.)-2 1733 y Fb(2.4.)34 b(IJS_CMD_PONG)396 2007 y Fg(The)20 b(PONG)h(command)d(is)j (sent)g(from)e(the)h(serv)o(er)f(to)i(the)f(client)g(in)g(response)g (to)g(the)g(PING)h(command.)d(It)i(contains)396 2115 y(one)g(inte)o(ger)f(ar)o(gument,)f(which)h(is)i(100)f(times)g(the)g (lar)o(gest)g(IJS)h(v)o(ersion)e(number)f(understood)g(by)i(the)g(serv) o(er)-5 b(.)19 b(After)396 2223 y(a)i(PING/PONG)f(handshak)o(e,)f(both) g(client)h(and)g(serv)o(er)f(should)g(use)i(the)f(minimum)f(of)g(the)i (tw)o(o)f(v)o(ersion)f(numbers.)396 2331 y(This)i(ne)o(gotiation)d (mechanism)h(preserv)o(es)g(the)h(ability)g(to)g(mak)o(e)g(deep)f (changes)h(in)g(future)f(v)o(ersion)g(of)h(the)g(protocol,)396 2439 y(while)g(preserving)f(backw)o(ards)g(compatibility)f(for)i(both)f (clients)i(and)e(serv)o(ers.)-2 2777 y Fb(2.5.)34 b(IJS_CMD_OPEN)396 3051 y Fg(The)20 b(client)g(should)g(send)f(an)i(OPEN)f(command)e(to)j (the)f(serv)o(er)f(to)i(indicate)e(that)h(printing)f(is)i(imminent.)e (The)h(serv)o(er)396 3159 y(can)g(allocate)g(resources,)f(such)h(as)h (tables,)f(at)h(this)g(time.)-2 3498 y Fb(2.6.)34 b(IJS_CMD_CLOSE)396 3772 y Fg(The)20 b(client)g(should)g(send)f(a)i(CLOSE)g(command)d(to)i (the)g(serv)o(er)g(to)g(indicate)g(that)g(printing)f(is)i(complete)e (for)h(no)n(w)-5 b(.)396 3880 y(The)20 b(serv)o(er)f(can)h(free)g(an)o (y)g(allocated)f(resources)g(at)i(this)g(time.)396 4154 y(There)f(should)f(not)h(be)g(an)o(y)f(jobs)h(open)f(at)i(the)f(time)h (of)f(the)g(CLOSE)h(command.)c(Handling)i(of)h(an)o(y)g(such)f(jobs)i (is)396 4262 y(unde\002ned.)-2 4600 y Fb(2.7.)34 b(IJS_CMD_BEGIN_JOB) 396 4874 y Fg(The)20 b(client)g(should)g(send)f(a)i(BEGIN_JOB)g(to)f (the)g(serv)o(er)f(to)i(be)o(gin)e(a)h(job)m(.)g(There)f(is)i(one)f (inte)o(ger)f(ar)o(gument,)e(a)k(job)396 4982 y(id.)f(This)h(id)f(is)h (allocated)f(by)f(the)i(client,)f(and)f(jobs)h(are)h(uniquely)d (identi\002ed)h(by)h(the)g(\(client,)g(job)g(id\))g(tuple.)f(This)i (job)p Black 3842 5569 a Fd(4)p Black eop %%Page: 5 5 5 4 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black 396 72 a Fg(id)h(is)g(present)f (as)h(an)f(ar)o(gument)e(for)i(all)h(the)g(commands)d(which)i(operate)f (within)i(the)f(conte)o(xt)f(of)h(a)h(job)m(.)f(This)g(job)g(id)h(is) 396 180 y(v)n(alid)g(until)g(the)g(corresponding)d(END_JOB)j(command)f (is)i(in)m(v)n(ok)o(ed,)d(at)j(which)e(point)h(it)h(can)f(be)g(reused)f (if)i(desired.)396 454 y(The)f(connection)e(must)i(be)h(in)f(an)g(open) f(state)i(to)f(be)o(gin)f(a)i(job,)f(ie)g(an)g(OPEN)h(command)d(must)i (ha)n(v)o(e)g(been)g(sent,)396 562 y(without)g(a)g(corresponding)d (CLOSE.)396 836 y(Serv)o(ers)j(can)g(choose)f(whether)g(or)h(not)g(to)g (implement)f(multiple)h(jobs,)g(depending)d(on)j(their)g (sophistication.)f(When)396 944 y(the)h(number)f(of)h(jobs)g(supported) e(is)j(e)o(xceeded,)d(the)j(serv)o(er)e(should)g(return)g(an)h(IJS_ET)o (OOMANYJOBS)g(error)396 1052 y(code.)-2 1391 y Fb(2.8.)34 b(IJS_CMD_END_JOB)396 1665 y Fg(The)20 b(client)g(should)g(send)f(an)i (END_JOB)f(command)e(to)j(the)f(serv)o(er)f(on)h(the)g(completion)e(of) i(a)h(job)m(.)e(The)h(one)396 1773 y(ar)o(gument)e(is)j(the)f(job)g (id.)g(This)h(command)d(cannot)h(be)h(used)g(in)g(the)h(middle)e(of)h (a)h(page,)e(i.e.)h(when)g(a)g(BEGIN_P)-8 b(A)m(GE)396 1880 y(command)18 b(has)j(been)e(issued)i(without)e(its)i (corresponding)c(END_P)-8 b(A)m(GE.)-2 2219 y Fb(2.9.)34 b(IJS_CMD_CANCEL_JOB)396 2493 y Fg(This)21 b(command)d(cancels)i(a)h (job)m(.)e(The)h(one)f(ar)o(gument)f(is)j(the)f(job)g(id.)g(This)h (command)d(can)i(be)g(used)g(whether)f(or)h(not)396 2601 y(a)h(page)e(is)j(open.)-2 2939 y Fb(2.10.)35 b(IJS_CMD_Q)o(UER)-6 b(Y_ST)-11 b(A)g(TUS)396 3213 y Fg(This)21 b(command)d(queries)h(the)i (status)f(of)g(a)h(job,)f(or)f(general)h(printer)f(status)i(within)e(a) i(job)f(conte)o(xt.)f(The)g(one)396 3321 y(ar)o(gument)f(is)j(the)f (job)g(id.)g(The)g(return)f(data)h(is)h(the)g(printer)e(status.)396 3595 y(The)h(format)f(of)g(the)h(printer)f(status)i(is)g(yet)f(to)g(be) g(determined.)e(Glen)i(Petrie)g(has)g(made)f(a)i(proposal)d(on)i(the)g (inkjet-list)396 3703 y(mailing)g(list.)h(Michael)f(Sweet)g(has)h (suggested)e(adopting)f(the)i(IPP)h(status)g(codes.)f(That)f(standard)h (is)h(f)o(airly)e(rich)h(in)396 3811 y(status)h(queries.)e(There)h (appear)f(to)h(be)g(at)h(least)g(four)e(queries)g(related)h(to)g(this)h (IJS)g(command:)d(printer)n(-state)i(\(enum\),)396 3919 y(printer)n(-state-reasons)e(\(k)o(e)o(yw)o(ord\),)g(printer)n (-state-message)g(\(te)o(xt\),)h(printer)n(-is-accepting-jobs)d (\(boolean\).)-2 4257 y Fb(2.11.)35 b(IJS_CMD_LIST_P)-12 b(ARAMS)396 4531 y Fg(This)21 b(command)d(queries)h(the)i(serv)o(er)e (for)g(a)i(complete)e(list)i(of)f(parameters.)f(Note)h(that)h(this)f (list)i(may)d(change)396 4639 y(dynamically)-5 b(,)18 b(in)i(response)f(to)i(setting)f(v)n(arious)f(parameters,)g(or)h(e)o (xternal)f(e)n(v)o(ents.)g(The)h(ar)o(gument)e(is)j(the)f(job)g(id.)396 4747 y(The)g(return)f(v)n(alue)h(is)h(a)f(comma-separated)e(list)j(of)f (parameters.)p Black 3842 5569 a Fd(5)p Black eop %%Page: 6 6 6 5 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 77 a Fb(2.12.)35 b(IJS_CMD_ENUM_P)-12 b(ARAM)396 351 y Fg(This)21 b(command)d(queries)h (the)i(possible)e(v)n(alues)h(for)g(a)g(gi)n(v)o(en)f(parameter)-5 b(.)19 b(The)h(ar)o(guments)e(are)i(the)h(job)e(id)i(and)e(the)396 459 y(name)h(of)g(the)g(parameter)-5 b(.)19 b(The)h(return)f(v)n(alue)g (is)i(a)g(comma-separated)c(list)22 b(of)d(v)n(alues,)h(with)g(the)h (def)o(ault)e(gi)n(v)o(en)g(\002rst.)396 733 y(Some)h(parameters)f(may) h(not)g(ha)n(v)o(e)f(a)i(small)g(\002nite)f(enumeration.)e(In)h(these)i (cases,)f(the)h(serv)o(er)e(should)g(report)396 840 y(IJS_ERANGE.)396 1114 y(Note)h(also)h(that)f(the)g(comma-separated)e(encoding)g(does)i (not)g(pro)o(vide)e(a)i(w)o(ay)h(to)f(report)f(v)n(alues)h(containing) 396 1222 y(commas.)f(Thus,)h(these)g(should)g(be)g(a)n(v)n(oided.)-2 1561 y Fb(2.13.)35 b(IJS_CMD_SET_P)-12 b(ARAM)396 1835 y Fg(This)21 b(command)d(sets)j(a)g(parameter)-5 b(.)19 b(There)g(are)h(four)f(ar)o(guments:)f(the)j(job)e(id,)i(the)f(size)h (of)e(the)i(parameter)d(name)i(\(in)396 1943 y(bytes\),)f(the)g (parameter)e(name,)i(and)f(the)h(v)n(alue.)g(The)f(size)i(of)f(the)g(v) n(alue)g(is)h(inferred)d(from)h(the)h(size)h(of)f(the)g(command.)396 2217 y(If)h(the)h(parameter)d(is)j(unkno)n(wn,)d(the)i(serv)o(er)f (returns)h(an)g(IJS_EUNKP)-8 b(ARAM)20 b(error)-5 b(.)19 b(If)i(the)f(parameter)e(is)k(kno)n(wn)396 2325 y(b)n(ut)e(the)h(v)n (alue)e(is)i(not)f(appropriate,)e(the)i(serv)o(er)f(returns)h(an)g (IJS_ERANGE)g(error)-5 b(.)-2 2663 y Fb(2.14.)35 b(IJS_CMD_GET_P)-12 b(ARAM)396 2937 y Fg(This)21 b(command)d(retrie)n(v)o(es)h(the)h (current)f(v)n(alue)h(of)g(a)g(parameter)-5 b(.)19 b(There)g(are)i(tw)o (o)f(ar)o(guments:)e(the)i(job)g(id)h(and)e(the)396 3045 y(parameter)g(name.)g(The)h(v)n(alue)g(of)g(the)g(parameter)e(is)k (returned.)396 3319 y(If)e(the)h(parameter)d(is)j(unkno)n(wn,)d(the)i (serv)o(er)f(returns)h(an)g(IJS_EUNKP)-8 b(ARAM)20 b(error)-5 b(.)-2 3657 y Fb(2.15.)35 b(IJS_CMD_BEGIN_P)-12 b(A)-6 b(GE)396 3931 y Fg(This)21 b(command)d(be)o(gins)h(a)i(ne)n(w)f(page.)f (All)i(of)f(the)g(parameters)f(af)n(fecting)g(the)h(data)g(format)f(of) h(the)g(page)g(should)396 4039 y(ha)n(v)o(e)g(already)f(been)g(set)i (by)f(this)h(time.)-2 4378 y Fb(2.16.)35 b(IJS_CMD_SEND_D)-5 b(A)-11 b(T)g(A_BLOCK)396 4652 y Fg(This)21 b(command)d(sends)i(a)h (block)e(of)h(data,)g(in)g(the)g(format)f(de\002ned)g(by)h(P)o (ageImageLanguage)c(and)k(its)h(subsidiary)396 4760 y(parameters.)e (There)g(are)h(no)g(alignment)f(restrictions.)h(There)f(are)h(tw)o(o)g (ar)o(guments:)f(the)h(job)g(id,)g(and)f(the)i(size)g(of)e(the)396 4868 y(data)h(block)g(in)g(bytes.)g(The)g(data)g(block)f(follo)n(ws)h (the)g(command,)e(in)i(the)g(same)h(stream.)p Black 3840 5569 a Fd(6)p Black eop %%Page: 7 7 7 6 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black 396 72 a Fg(Note)h(that)h (shared-memory)16 b(transport)j(of)h(b)n(ulk)g(data)g(is)h(anticipated) e(in)i(a)f(future)f(v)o(ersion)g(of)h(this)h(standard.)e(Pipe)396 180 y(transport)g(will)i(still)g(be)g(used)f(as)g(a)h(f)o(allback)e(in) i(case)f(shared-memory)d(transport)i(is)i(una)n(v)n(ailable.)396 454 y(The)f(serv)o(er)f(must)i(be)f(in)g(the)g(middle)g(of)g(a)g(page)g (\(ie)g(BEGIN_P)-8 b(A)m(GE)20 b(without)f(the)i(corresponding)16 b(END_P)-8 b(A)m(GE\))396 562 y(when)20 b(this)h(command)d(is)j (issued.)-2 901 y Fb(2.17.)35 b(IJS_CMD_END_P)-12 b(A)-6 b(GE)396 1175 y Fg(This)21 b(command)d(ends)i(a)g(page.)g(The)f(serv)o (er)h(must)g(be)g(in)h(the)f(middle)f(of)h(a)h(page)e(when)h(this)g (command)f(is)i(issued.)396 1283 y(The)f(ar)o(gument)e(is)j(the)f(job)g (id.)-2 1621 y Fb(2.18.)35 b(IJS_CMD_EXIT)396 1895 y Fg(This)21 b(command)d(signals)i(the)g(end)g(of)g(the)g(IJS)h (connection.)d(In)i(the)g(typical)g(case)g(of)g(a)h(serv)o(er)e(with)i (a)f(single)g(client,)396 2003 y(the)g(serv)o(er)g(process)g (terminates)f(upon)g(receipt)h(of)g(this)g(command.)396 2277 y(The)g(connection)e(must)i(be)h(in)f(a)g(closed)g(state)h(at)g (the)f(time)h(of)e(this)i(command.)p Black -85 2395 a Fe(*)p Black 46 w(Need)e(to)g(look)g(into)g(r)o(ace)g(condition.)-2 2855 y Fh(3.)39 b(P)l(arameter)n(s)396 3129 y Fg(IJS)21 b(de\002nes)f(a)h(small)f(set)h(of)f(standard)f(parameters,)g(which)h (all)g(clients)h(and)f(serv)o(ers)f(are)h(e)o(xpected)f(to)h (understand.)396 3237 y(Indi)n(vidual)d(implementations)h(may)h(e)o (xtend)f(this)i(standard)e(set)i(with)g(additional)e(parameters)g (speci\002c)i(to)f(the)h(de)n(vice)396 3345 y(or)g(dri)n(v)o(er)-5 b(.)19 b(Clients)i(should,)e(in)h(general,)f(pro)o(vide)f(some)i (mechanism)f(for)h(setting)g(\(and)f(possibly)h(querying\))396 3453 y(arbitrary)f(additional)g(parameters.)f(In)i(particular)m(,)f (command)f(line)i(clients)h(should)e(accept)h(command)e(line)i(options) 396 3561 y(to)h(set)g(additional)d(parameters.)h(Interacti)n(v)o(e)g (clients)h(should)f(ideally)h(query)f(the)h(serv)o(er)f(for)h(a)h(list) g(of)f(these)396 3669 y(parameters)f(to)i(display)e(in)i(the)f(interf)o (ace,)f(then)h(query)e(each)i(parameter)f(for)g(the)i(list)g(of)f (possible)g(v)n(alues,)f(presented)396 3777 y(as)i(menu)e(choices.)396 4051 y(In)g(addition,)f(in)i(man)o(y)e(scenarios,)h(the)g(client)h(may) e(ha)n(v)o(e)h(additional)f(information)f(speci\002c)j(to)g(the)f(de)n (vice,)f(obtained)396 4159 y(through)g(other)i(means,)f(for)h(e)o (xample)f(a)h(PPD)h(\(or)f(PPD-lik)o(e\))g(\002le)h(speci\002ed)f(by)f (the)i(user)-5 b(.)20 b(Such)g(\002le)g(formats)g(are)396 4267 y(well)h(be)o(yond)d(the)i(scope)g(of)g(this)h(speci\002cation.)e (Ho)n(we)n(v)o(er)m(,)f(man)o(y)h(users)h(may)g(\002nd)g(the)g(simple)g (parameter)396 4375 y(mechanism)f(of)h(IJS)h(to)f(be)g(suf)n(\002cient) g(for)g(their)g(needs.)f(A)i(particular)e(strength)g(of)h(the)g(IJS)h (parameter)e(mechanism)396 4483 y(is)i(that)g(no)e(additional)g(ef)n (fort)g(is)i(required)e(to)h(handle)f(dynamic)g(capability)g (information,)f(for)h(e)o(xample)g(the)396 4591 y(presence)g(of)h(a)h (hot-pluggable)16 b(duple)o(x)o(er)-5 b(.)396 4865 y(Often,)20 b(one)f(parameter)g(will)i(be)f(subsidiary)f(to)i(another)-5 b(.)19 b(In)g(this)i(case,)g(the)f(subsidiary)f(parameter)f(should)i (be)g(set,)396 4973 y(gotten,)f(or)h(enumerated)e(after)i(the)g(other)g (parameter)e(is)k(set.)p Black 3839 5569 a Fd(7)p Black eop %%Page: 8 8 8 7 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 94 a Fh(4.)39 b(Standar)m(d)f(parameter)n(s)396 368 y Fg(This)21 b(section)f (describes)f(the)h(standard)f(parameters)g(speci\002ed)h(by)g(IJS.)-2 696 y Fb(4.1.)34 b(OutputFile)396 970 y Fg(This)21 b(parameter)d(is)j (the)g(\002lename)e(intended)g(for)h(IJS)g(output.)f(It)i(will)g(often) e(refer)g(to)i(a)f(de)n(vice,)f(b)n(ut)i(can)f(also)g(be)g(a)396 1078 y(re)o(gular)f(\002le.)396 1352 y(Note)h(that)g(this)h(parameter)d (should)h(be)h(considered)e(security-sensiti)n(v)o(e.)g(Clients)i (should)f(tak)o(e)h(care)g(to)g(ensure)f(that)h(it)396 1460 y(is)h(set)g(only)f(to)g(le)o(gitimate)g(v)n(alues.)-2 1798 y Fb(4.2.)34 b(OutputFD)396 2072 y Fg(This)21 b(is)g(an)f (alternati)n(v)o(e)f(to)h(OutputFile,)f(and)h(is)h(intended)e(to)h (support)f(-sOutputFile=-)g(and)h(-sOutputFile="|cmd")396 2180 y(con\002gurations)e(of)i(Ghostscript.)f(The)h(parameter)f(is)i(a) g(numeric)d(\002le)j(descriptor)-5 b(.)-2 2519 y Fb(4.3.)34 b(De)n(viceMan)o(ufacturer)396 2793 y Fg(This)21 b(parameter)d(is)j (the)g(manuf)o(acturer)c(of)j(the)g(printer)-5 b(.)20 b(In)f(general,)g(it)i(should)e(match)h(the)g("MANUF)-6 b(A)m(CTURER")396 2901 y(\(or)20 b("MFR"\))g(\002eld)h(of)f(the)g(IEEE) f(1284)g(De)n(vice)h(ID)g(string)g(e)o(xactly[IEEE1284].)396 3175 y(There)g(are)g(man)o(y)f(dif)n(ferent)f(scenarios)i(for)f (setting)i(and)e(querying)f(this)j(parameter)m(,)d(depending)g(on)h (what)396 3283 y(information)f(is)j(kno)n(wn)e(about)g(the)h(de)n (vice.)396 3557 y(In)g(the)g(case)h(where)f(the)g(serv)o(er)f(is)i (able)f(to)h(identify)e(the)h(de)n(vice,)f(for)h(e)o(xample)e(by)i (retrie)n(ving)f(the)h(IEEE)f(1284)396 3665 y(De)n(vice)h(ID)g(string,) g(or)g(through)e(the)i(GET_DEVICE_ID)e(request)i(of)g(the)g(USB)h (Printer)f(Class[USBPrint],)h(getting)396 3772 y(the)f(v)n(alue)g(of)g (the)g(parameter)e(will)j(retrie)n(v)o(e)e(this)h(identi\002cation)f (string.)h(In)g(general,)e(the)i(serv)o(er)g(should)f(perform)f(the)396 3880 y(de)n(vice)i(ID)g(query)f(at)h(the)h(time)f(of)g(the)g(GET_P)-8 b(ARAM)20 b(command.)396 4154 y(In)g(the)g(case)h(where)f(the)g(de)n (vice)f(identi\002cation)g(is)i(con\002gured)d(by)i(the)g(client,)g (the)g(client)g(may)g(set)h(this)g(parameter)m(,)396 4262 y(then)f(set)h(the)f(De)n(viceModel)f(parameter)-5 b(.)396 4536 y(Finally)g(,)20 b(enumerating)d(this)k(parameter)e (returns)g(a)i(list)g(of)f(manuf)o(acturers)e(kno)n(wn)g(by)i(the)g (serv)o(er)-5 b(.)20 b(This)g(may)g(be)396 4644 y(helpful)f(for)h (installing)g(a)g(ne)n(w)g(printer)f(in)i(cases)g(where)e(automatic)g (de)n(vice)h(identi\002cation)f(is)i(not)f(a)n(v)n(ailable.)396 4918 y(There)g(may)f(be)h(cases)h(where)f(the)g(serv)o(er)g(is)h(able)f (to)g(automatically)f(identify)g(the)h(de)n(vice,)f(and)h(the)g(client) g(attempts)396 5026 y(to)h(o)o(v)o(erride)d(this)i(identi\002cation.)f (The)h(serv)o(er)f(should)g(allo)n(w)h(this)h(o)o(v)o(erride)d(to)i (occur)m(,)f(particularly)f(when)i(the)p Black 3842 5569 a Fd(8)p Black eop %%Page: 9 9 9 8 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black 396 72 a Fg(de)n(vice)h(ID)g (is)h(not)f(one)g(kno)n(wn)e(to)j(the)f(serv)o(er)-5 b(.)19 b(Ho)n(we)n(v)o(er)m(,)f(the)j(serv)o(er)e(can)h(reject)g(such)g (attempts)g(by)g(returning)e(an)396 180 y(IJS_ERANGE)i(error)-5 b(.)-2 519 y Fb(4.4.)34 b(De)n(viceModel)396 793 y Fg(This)21 b(parameter)d(is)j(the)g(model)e(name)h(of)f(the)i(printer)m(,)d(and)i (together)f(with)h(De)n(viceManuf)o(acturer)m(,)c(identi\002es)k(the) 396 901 y(de)n(vice.)f(In)h(general)f(it)i(should)e(match)h(the)g ("MODEL")g(\(or)g("MDL"\))f(\002eld)i(of)e(the)i(IEEE)e(1284)g(De)n (vice)h(ID)g(string.)396 1175 y(Usage)g(scenarios)g(are)g(similar)h(to) f(De)n(viceManuf)o(acturer)-5 b(.)17 b(This)j(parameter)f(is)i (subsidiary)e(to)i(De)n(viceManuf)o(acturer)-5 b(.)396 1449 y(Setting)20 b(the)h(de)n(vice)e(manuf)o(acturer)e(and)j(model)f (may)h(ha)n(v)o(e)g(profound)d(ef)n(fects)j(on)f(the)i(list)g(of)f (other)f(parameters)396 1557 y(a)n(v)n(ailable.)h(F)o(or)g(e)o(xample,) e(the)i(serv)o(er)g(may)f(in)i(f)o(act)f(be)g(a)h(wrapper)e(that)h(in)m (v)n(ok)o(es)f(the)h(\223real\224)g(serv)o(er)g(once)f(the)h(de)n(vice) 396 1665 y(id)h(is)g(kno)n(wn,)d(and)i(then)g(proxies)f(all)h(IJS)h (commands)e(subsequently)-5 b(.)17 b(Thus,)j(all)h(other)e(parameters)g (other)g(than)396 1773 y(OutputFD,)h(OutputFile,)f(and)g(De)n (viceManuf)o(acturer)m(,)e(should)i(be)h(considered)e(subsidiary)h(to)i (this)f(one.)-2 2111 y Fb(4.5.)34 b(P)l(a)o(g)q(eIma)o(g)q(eFormat)396 2385 y Fg(This)21 b(parameter)d(speci\002es)j(the)f(format)f(of)h(the)g (page)g(image)g(data)g(to)g(be)g(sent)h(to)f(the)g(printer)-5 b(.)19 b(This)i(standard)e(only)396 2493 y(de\002nes)h(one)g(standard)f (v)n(alue:)g("Raster".)i(Other)f(v)n(alues,)f(including)g(compressed)f (raster)i(formats,)g(as)g(well)h(as)396 2601 y(possibly)f(higher)f(le)n (v)o(el)h(page)f(description)g(languages)f(such)i(as)h(PostScript)f (and)g(PDF)-7 b(,)21 b(are)f(en)m(visioned)f(as)h(possible)396 2709 y(future)f(e)o(xtensions.)396 2983 y(When)h(it)h(mak)o(es)f (sense,)h(names)e(consistent)h(with)h(the)f("COMMAND)g(SET")g(\(or)g ("CMD"\))g(\002eld)h(of)f(the)g(IEEE)f(1284)396 3091 y(De)n(vice)h(ID)g(string)g(are)g(recommended.)d(Ho)n(we)n(v)o(er)m(,)h (this)j(namespace)e(has)h(man)o(y)f(shortcomings)g(for)g(use)i(with)f (IJS.)396 3199 y(In)g(particular)m(,)f(it)h(tends)g(to)h(identify)e (the)h(command)e(set)j(too)f(v)n(aguely)-5 b(.)18 b(F)o(or)i(e)o (xample,)e(man)o(y)h(Epson)h(printers)f(report)396 3307 y(merely)h("ESCPL2",)f(which)h(is)h(not)f(nearly)f(precise)h(enough)e (to)j(usefully)e(dri)n(v)o(e)g(the)h(printer)-5 b(.)396 3580 y(When)20 b(the)g(v)n(alue)g(is)h("Raster",)f(the)h(follo)n(wing)d (parameters)h(are)h(required,)e(and)i(are)g(subsidiary)f(to)i(this)f (one:)g(Dpi,)396 3688 y(W)m(idth,)g(Height,)g(BitsPerSample,)g (ColorSpace,)e(and)i(NumChan.)-2 4027 y Fb(4.6.)34 b(Dpi)396 4301 y Fg(This)21 b(parameter)d(is)j(the)g(resolution)d(for)i(transfer) f(of)h(raster)g(data.)g(It)h(is)g(speci\002ed)f(as)h(a)f(horizontal)f (resolution,)f(in)396 4409 y(\003oating)i(decimal)f(dpi)h(units,)g(an)g ("x",)g(and)g(a)g(v)o(ertical)g(resolution,)e(in)j(\003oating)e (decimal)h(dpi)g(units.)g(Thus,)f(a)i(typical)396 4517 y(v)n(alue)f(is)h("1440x720".)396 4791 y(Note)f(that)h(the)f(serv)o(er) f(may)h(perform)e(scaling)i(of)g(the)g(raster)g(data)g(as)h(part)f(of)g (its)h(processing,)e(before)g(sending)g(it)i(to)396 4899 y(the)f(de)n(vice.)g(In)g(these)g(cases,)h(the)f(Dpi)g(parameter)f (speci\002es)h(the)h(resolution)d(prior)i(to)g(scaling.)g(F)o(or)f(e)o (xample,)g(a)396 5007 y(dri)n(v)o(er)g(might)g(accept)h(720)g(dpi)f (raster)i(data,)e(then)h(perform)e(2:1)i(horizontal)f(pix)o(el)g (replication)g(to)h(dri)n(v)o(e)f(the)i(actual)396 5114 y(de)n(vice)f(at)g(1440x720)d(dpi.)j(In)g(this)g(e)o(xample,)f(the)h(v) n(alue)g(of)g(the)g(Dpi)g(parameter)f(is)i("720x720".)p Black 3842 5569 a Fd(9)p Black eop %%Page: 10 10 10 9 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 77 a Fb(4.7.)34 b(Width)396 351 y Fg(This)21 b(parameter)d(is)j(the)g(decimal)e (encoded)g(width)h(of)f(the)i(raster)f(image,)f(in)i(pix)o(els.)e(It)i (MUST)f(be)g(set)h(when)396 459 y(P)o(ageImageF)o(ormat)c(is)k(Raster) -5 b(.)-2 797 y Fb(4.8.)34 b(Height)396 1071 y Fg(This)21 b(parameter)d(is)j(the)g(decimal)e(encoded)g(height)g(of)h(the)g (raster)g(image,)g(in)g(pix)o(els.)g(It)g(MUST)g(be)h(set)g(for)e (raster)396 1179 y(images.)-2 1517 y Fb(4.9.)34 b(BitsP)l(erSample)396 1791 y Fg(This)21 b(parameter)d(is)j(the)g(decimal)e(encoded)g(bit)h (depth)f(of)h(samples)g(for)g(pix)o(el)g(v)n(alues.)f(It)i(MUST)f(be)g (set)h(for)f(raster)396 1899 y(images.)g(V)-9 b(alid)20 b(v)n(alues)g(include)f(1-7)g(\(implying)g(client-side)g(dithering)g (of)h(image)f(pix)o(els\),)h(8,)g(and)f(16)h(\(both)396 2007 y(implying)f(serv)o(er)n(-side)g(dithering)f(if)j(needed)e(by)h (the)g(de)n(vice\).)f(In)h(general,)e(the)j(total)f(number)e(of)i(bits) h(per)f(pix)o(el)f(is)396 2115 y(equal)h(to)g(BitsPerSample)h(times)f (NumChan.)396 2389 y(In)g(man)o(y)f(cases,)i(querying)d(this)i (parameter)f(will)i(be)f(useful.)g(A)g(\223dumb\224)f(serv)o(er)g(may)h (choose)f(not)h(to)g(implement)396 2497 y(color)g(transform)e(and)i (dithering,)e(lea)n(ving)i(these)g(to)g(the)h(client.)f(In)f(this)i (case,)g(the)f(result)g(of)g(the)g(query)f(operation)396 2605 y(will)i(be)f(a)h(list)g(of)f(bit)g(depths)g(actually)f(supported) f(by)i(the)g(de)n(vice.)f(Simple)h(de)n(vices)g(may)f(report)g("1",)h (while)g(de)n(vices)396 2713 y(capable)g(of)f(both)h(bile)n(v)o(el)f (and)h(4-le)n(v)o(el)f(v)n(ariable)g(dots)h(may)g(report)f("1,2".)396 2987 y(Note)h(that)h(not)f(all)g(combinations)e(of)i(BitsPerSample)h (and)e(ColorSpace)g(are)i(v)n(alid.)e(In)h(particular)m(,)e (BitsPerSample)396 3095 y(less)k(than)d(8)i(in)f(combination)e(with)i (a)h(ColorSpace)e(of)h(sRGB)i(or)d(an)o(y)h(other)f(colorimetric)g (color)g(space)h(are)g(not)396 3203 y(v)n(alid.)g(Also)g(for)g(scRGB)h (\(also)g(kno)n(wn)d(as)j(sRGB64\),)f(16)g(is)h(the)f(only)g(v)n(alid)g (v)n(alue.)396 3477 y(When)g(the)g(v)n(alue)g(is)h(16,)f(the)g(ByteSe)o (x)g(parameter)e(is)k(required,)c(and)h(is)i(subsidiary)e(to)i(this)g (one.)-2 3815 y Fb(4.10.)35 b(ByteSe)n(x)396 4089 y Fg(When)20 b(BitsPerSample)h(is)g(equal)e(to)i(16,)e(this)i(parameter)e (speci\002es)h(the)g(byte)g(se)o(x)g(of)g(the)g(raster)h(data.)e (Possible)396 4197 y(v)n(alues)h(are)g("big-endian")e(and)h ("little-endian".)396 4471 y(Enumerating)f(this)j(parameter)d(should)h (list)j(the)e(preferred)e(byte)i(se)o(x)g(as)h(the)f(def)o(ault)f(\(ie) i(\002rst)g(in)f(the)396 4579 y(comma-separated)e(list\).)i(In)g(most)g (cases,)h(this)g(will)g(be)f(the)g(byte)g(se)o(x)g(of)g(the)g(serv)o (er')-5 b(s)20 b(host)g(architecture.)396 4853 y(Serv)o(ers)g(limited)g (to)g(8)g(bits)h(of)f(depth)f(need)h(not)g(implement)f(this)h (parameter)f(at)i(all.)p Black 3800 5569 a Fd(10)p Black eop %%Page: 11 11 11 10 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 77 a Fb(4.11.)35 b(ColorSpace)396 351 y Fg(This)21 b(parameter)d(is)j(a)g(string)f (identifying)e(the)i(color)g(space)g(of)g(the)g(raster)g(image)g(data.) g(It)g(MUST)g(be)h(set)g(for)e(raster)396 459 y(images.)h(Standard)f(v) n(alues)h(include)f("De)n(viceGray",)f("De)n(viceRGB",)i("De)n (viceCMYK",)f(and)h("sRGB".)h(Serv)o(ers)396 566 y(should)e(support)g (at)i(least)g(one)f(of)f(these)i(color)e(spaces.)h(Clients)h(should)f (be)g(able)g(to)g(produce)e(raster)i(output)f(if)i(at)396 674 y(least)g(one)f(of)g(these)g(color)f(spaces)i(is)g(supported)d(by)i (the)g(serv)o(er)-5 b(.)p Black -85 793 a Fe(*)p Black 64 w(I)19 b(think)g(we)g(should)h(have)g(a)f(wide-gamut)g(colorimetric) g(color)h(space)f(in)g(the)g(standar)m(d)i(list)d(as)h(well.)f(I)g(lik) o(e)h(La*b*)h(with)e(a)h(r)m(ecommended)i(bit)-2 901 y(depth)e(of)g(16.)g(Any)g(objections?)396 1175 y Fg(A)i(de)n(vice)e (may)h(choose)f(to)i(pro)o(vide)d(more)h(color)h(spaces.)g(F)o(or)g(e)o (xample,)e(6)i(color)g(inkjets)g(may)g(pro)o(vide)e(a)396 1283 y("De)n(viceCcMmYK")h(space.)h(In)g(general,)f(for)h(a)g(client)g (to)h(use)f(an)o(y)g(of)f(these)i(nonstandard)c(spaces)k(requires)396 1390 y(detailed)f(kno)n(wledge)e(of)i(the)g(color)f(rendering)f (characteristics)i(of)g(the)g(de)n(vice.)396 1664 y(Serv)o(ers)g (should)f(not)h(pro)o(vide)e(additional)h(color)g(spaces)i(which)e(are) h(merely)g(transforms)e(of)i(the)h(standard)e(color)396 1772 y(spaces.)h(Examples)g(of)g(such)f(discouraged)f(color)i(spaces)g (are)g(HSV)-11 b(,)21 b(XYZ,)f(Luv)-5 b(,)19 b(Y)-9 b(uv)k(,)19 b(YCC,)i(and)f(colorimetric)396 1880 y(RGB)i(spaces)e(other)g(than)f (sRGB)j(\(T)o(ODO:)e(unless)g(we)g(decide)g(to)g(accept)g (scRGB/sRGB64\).)-2 2219 y Fb(4.12.)35 b(NumChan)396 2493 y Fg(This)20 b(parameter)d(is)k(the)e(number)e(of)i(channels)f(in) i(the)f(chosen)f(color)h(space.)g(In)g(general,)e(it)j(can)f(be)h (determined)d(from)396 2601 y(the)j(ColorSpace.)f(In)h(particular)m(,)f (De)n(viceGray)f(implies)j(1,)f(De)n(viceRGB)g(and)g(sRGB)h(imply)f(3,) g(and)g(De)n(viceCMYK)396 2709 y(implies)h(4.)f(Attempting)f(to)h(set)h (a)f(NumChan)g(inconsistent)f(with)h(ColorSpace)f(should)h(result)g(in) g(an)g(error)-5 b(.)-2 3047 y Fb(4.13.)35 b(P)l(aperSiz)q(e)396 3321 y Fg(This)21 b(parameter)d(is)j(in)g(W)-8 b(.WWxH.HH)21 b(format,)e(in)h(inches,)g(i.e.)g(a)h(string)e(that)i(may)e(be)i (produced)c(by)j(sprintf)f(\(str)m(,)396 3429 y("\045fx\045f",)h (width,)f(height\).)g(If)h(the)g(serv)o(er)g(kno)n(ws)f(the)h(paper)f (size)i(\(which)f(is)h(unlik)o(ely)e(for)g(inkjets\),)h(then)g(getting) 396 3537 y(the)g(parameter)f(will)i(gi)n(v)o(e)e(a)i(good)e(v)n(alue.)g (In)h(the)g(more)g(common)e(case,)i(get)h(simply)e(returns)h(an)g (error)f(code)g(\(todo:)396 3645 y(probably)f(need)i(to)g(allocate)g(a) h(ne)n(w)f(one)f(for)h(this\).)g(Enumerating)e(this)i(parameter)f(may)h (gi)n(v)o(e)f(a)i(list)g(of)f(paper)f(sizes)396 3753 y(kno)n(wn)g(by)h(the)g(dri)n(v)o(er)f(that)h(are)g(plausible)g(for)f (the)h(de)n(vice.)396 4027 y(The)g(result)g(of)g(getting)f(or)h (enumerating)e(P)o(aperSize)i(may)f(change)g(dynamically)f(depending)g (on)h(the)i(De)n(viceModel,)396 4135 y(Duple)o(x,)e(and)h(possibly)f (\223e)o(xtension\224)g(parameters)g(such)g(as)i(those)f(for)g (selecting)g(trays.)396 4409 y(Note)g(that)h(this)f(parameter)f(is)i (essentially)f(the)h(same)f(as)h(the)f(P)o(ageSize)g(page)g(de)n(vice)f (parameter)-5 b(.)19 b(The)h(main)396 4517 y(dif)n(ference)e(is)k (units)e(\(PostScript)g(uses)g(1/72")g(inch)f(units\),)h(and)g(the)g (minor)f(syntax)g(nit)i(of)f(PostScript)g(array)396 4625 y(encoding.)p Black 3800 5569 a Fd(11)p Black eop %%Page: 12 12 12 11 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 77 a Fb(4.14.)35 b(Printab)o(leArea)396 351 y Fg(This)21 b(parameter)d(is)j(in)g(W)-8 b(.WWxH.HH)21 b(format,)e(and)g(describes)h(the)g(printable)f(area)h (of)g(the)g(page.)f(It)i(is)g(e)o(xpected)396 459 y(that)g(the)f (client)g(will)h(usually)f(get)g(it)h(from)e(the)h(serv)o(er)-5 b(.)20 b(An)o(y)f(attempt)h(to)g(set)h(it)g(is)g(allo)n(wed)f(to)g(f)o (ail)h(with)f(an)g(error)m(,)396 566 y(e)n(v)o(en)f(if)i(it')-5 b(s)21 b(the)f(same)h(v)n(alue)e(as)i(the)f(get.)g(The)g(v)n(alue)g (may)f(change)g(dynamically)g(depending)e(on)j(P)o(aperSize)f(and)396 674 y(other)h(parameters.)-2 1013 y Fb(4.15.)35 b(Printab)o(leT)-10 b(opLeft)396 1287 y Fg(This)21 b(parameter)d(is)j(in)g(W)-8 b(.WWxH.HH)21 b(format,)e(and)g(contains)h(the)g(left)g(and)g(top)g (mar)o(gins)f(of)h(the)g(printable)f(area)396 1395 y(with)i(respect)f (to)g(the)g(media.)f(It)i(is)g(the)f(companion)e(to)i(PrintableArea)f (\(I'm)g(considering)g(ha)n(ving)g(a)h(single)396 1503 y(parameter)f(that)h(ASCII)h(encodes)e(the)h(four)f(\003oats\).)-2 1841 y Fb(4.16.)35 b(T)-10 b(opLeft)396 2115 y Fg(This)21 b(parameter)m(,)d(in)i(W)-8 b(.WWxH.HH)21 b(is)g(intended)e(to)h(be)g (set,)h(and)f(controls)f(the)h(placement)f(of)h(the)g(raster)h(image)e (on)396 2223 y(the)h(page.)g(The)g(corresponding)c(size)21 b(of)f(the)g(raster)g(image)g(area)g(can)g(be)g(inferred)f(from)g(the)h (W)m(idth,)g(Height,)f(and)396 2331 y(Dpi)i(parameters.)-2 2670 y Fb(4.17.)35 b(P)-5 b(ostScript)33 b(P)l(a)o(g)q(e)i(De)n(vice)g (P)l(arameter)n(s)396 2944 y Fg(PostScript)20 b(de\002nes)g(a)h(number) d(of)i(page)g(de)n(vice)f(parameters,)g(man)o(y)g(of)h(which)f(are)i (rele)n(v)n(ant)e(to)h(IJS,)h(whether)e(using)396 3051 y(PostScript)h(or)g(not.)g(Further)m(,)f(man)o(y)g(proposals)f(for)i (characterizing)e(de)n(vice)h(capabilities)h(are)g(based)g(on)g(PPD)h (\002les,)396 3159 y(which)f(use)g(a)h(consistent)f(namespace)f(and)g (semantics)i(to)f(page)f(de)n(vice)h(parameters.)396 3433 y(IJS)h(imports)f(the)g(namespace)f(of)h(PostScript)g(page)f(de)n (vice)h(parameters,)e(pre\002xing)h(it)i(with)f(the)g(string)g("PS:".)h (The)396 3541 y(client)f(can)g(assume)h(that)f(an)o(y)f(parameters)g (returned)g(by)g(a)i(LIST_P)-8 b(ARAMS)20 b(command)f(matching)f(this)j (pre\002x)e(are)396 3649 y(in)i(f)o(act)f(PostScript)g(page)g(de)n (vice)f(parameters.)g(V)-9 b(alues)20 b(are)g(straightforw)o(ard)e (ASCII)i(encodings.)e(F)o(or)i(e)o(xample,)396 3757 y(arrays)g(are)g (encoded)e(as)j(space-separated)e(v)n(alues,)g(enclosed)g(in)i(square)e (brack)o(ets.)g(The)h(set)h(of)f(v)n(alid)g(page)f(de)n(vice)396 3865 y(parameters)g(is)i(de\002ned)f(in)g(the)g(PostScript)g(Language)e (Reference)i(Manual[PLRM],)e(particularly)h(Chapter)g(6.)396 4139 y(Some)h(page)g(de)n(vice)f(parameters)g(are)h(subsumed)f(by)h (nati)n(v)o(e)f(IJS)i(parameters,)e(and)g(should)g(not)h(be)g(used.)g (These)396 4247 y(include)f(P)o(ageSize)h(\(subsumed)f(by)h(P)o (aperSize\),)e(ProcessColorModel)h(\(subsumed)f(by)i(ColorSpace\),)f (Mar)o(gins)396 4355 y(and)h(P)o(ageOf)n(fset)f(\(subsumed)g(by)g(T)-7 b(opLeft\),)19 b(and)h(HWResolution)g(\(subsumed)e(by)i(Dpi\).)396 4629 y(De)n(vices)g(supporting)e(duple)o(xing)g(should)h(implement)g (PS:Duple)o(x)g(and)h(PS:T)l(umble,)f(both)h(booleans.)e(A)j(v)n(alue)f (of)396 4737 y(true)g(for)g(PS:Duple)o(x)f(requests)h(printing)e(on)i (both)g(sides)g(of)g(the)h(page.)e(When)h(PS:Duple)o(x)f(is)i(true,)f (PS:T)l(umble)396 4845 y(speci\002es)h(the)e(relati)n(v)o(e)h (orientation)e(of)h(the)h(pages.)f(When)h(PS:T)l(umble)f(is)i(f)o (alse,)f(the)g(pages)g(are)f(oriented)g(suitably)g(at)396 4953 y(the)h(left)g(or)f(right.)g(When)h(PS:T)l(umble)f(is)h(true,)f (the)h(pages)f(are)h(oriented)e(suitably)i(for)f(binding)f(at)i(the)f (top)h(or)f(bottom.)396 5061 y(Enumerating)f(the)i(PS:Duple)o(x)f (parameter)g(should)g(return)g(a)i(single)f("f)o(alse")g(v)n(alue)g (when)g(the)g(serv)o(er)f(kno)n(ws)g(that)396 5168 y(the)h(de)n(vice)g (is)h(not)f(capable)f(of)h(duple)o(xing,)d(and)j(either)g("f)o (alse,true")f(or)h("true,f)o(alse")f(if)i(it)g(may)e(be.)p Black 3800 5569 a Fd(12)p Black eop %%Page: 13 13 13 12 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black Black -85 72 a Fe(*)p Black 46 w(Note)f(that)g(the)g(HPIJS)g(1.0)g(implementation)h (of)f(IJS,)g(identifying)h(itself)e(as)h(IJS)h(ver)o(sion)g(0.29,)f (speci\002es)h(an)g(inte)m(g)o(er)o(-valued)g(Duple)o(x)g(par)o(ameter) -8 b(,)-2 180 y(with)18 b(values)i(of)f(0)g(\(PS:Duple)o(x)f(=)h(false) o(,)g(PS:T)l(umble)g(don')n(t)g(car)m(e\),)g(1)g(\(PS:Duple)o(x)g(=)g (true)o(,)g(PS:T)l(umble)g(=)g(false\),)f(and)i(2)f(\(PS:Duple)o(x)g(=) g(true)o(,)-2 288 y(PS:T)l(umble)f(=)h(true\).)g(An)g(inte)m(g)o(er)g (valued)h(Duple)o(x)f(par)o(ameter)h(is)f(inconsistent)g(with)g(the)g (P)-6 b(ostScript)19 b(speci\002cation.)h(Howe)o(ver)-8 b(,)19 b(clients)-2 396 y(desiring)g(compatibility)g(should)h(set)f (the)g(inte)m(g)o(er)o(-valued)h(Duple)o(x)f(par)o(ameter)h(r)o(ather)f (than)h(the)f(PS:)g(par)o(ameter)o(s)h(when)f(the)g(server)g(r)m (eports)h(a)-2 504 y(ver)o(sion)g(of)e(0.29.)396 778 y Fg(De)n(vices)i(supporting)e(roll-fed)h(media)h(should)f(implement)g (PS:RollFedMedia,)g(PS:Orientation,)396 886 y(PS:Adv)n(anceMedia,)f (PS:Adv)n(anceDistance)h(\(note)g(that)i(units)f(are)g(inte)o(ger)f (1/72"\),)g(and)g(PS:CutMedia.)396 1160 y(Other)h(parameters)f(that)h (may)g(be)g(useful)g(for)f(some)h(de)n(vices)g(include)f(PS:MediaColor) m(,)g(PS:MediaW)-7 b(eight,)396 1268 y(PS:MediaT)g(ype,)19 b(PS:MediaClass,)i(PS:InsertSheet,)f(PS:LeadingEdge,)d(PS:ManualFeed,)i (PS:T)m(raySwitch,)396 1376 y(PS:MediaPosition,)h(PS:ImageShift,)e (PS:MirrorPrint,)h(PS:Ne)o(gati)n(v)o(ePrint,)f(PS:NumCopies,)i (PS:Collate,)396 1484 y(PS:Jog,)g(PS:OutputF)o(aceUp,)f (PS:Separations,)g(and)h(PS:SeparationColorNames.)e(Other)h(parameters) g(are)396 1592 y(allo)n(wed,)h(b)n(ut)g(are)g(unlik)o(ely)f(to)h(be)g (useful)g(in)g(an)h(IJS)f(conte)o(xt.)-2 2062 y Fh(5.)39 b(P)l(arameter)f(Namespace)f(Extension)396 2336 y Fg(While)21 b(this)g(document)d(speci\002es)j(enough)d(parameters)h(to)h(be)g(able) g(to)h(print)e(usefully)-5 b(,)19 b(there)g(is)j(a)e(huge)f(di)n(v)o (ersity)g(of)396 2444 y(de)n(vices)h(and)g(applications,)e(often)i (indicating)f(additional)f(parameters)h(not)h(speci\002ed.)g(IJS)h(is)g (designed)e(to)396 2552 y(accomodate)g(these)h(additional)f(parameters) g(as)i(e)o(xtensions.)d(It)j(is)g(e)o(xpected)e(that)h(the)g(namespace) f(of)h(these)396 2660 y(e)o(xtensions)e(will)j(be)e(managed)e (informally)-5 b(.)17 b(Note)i(that)h(collisions)f(in)h(this)g (namespace)e(are)h(not)g(necessarily)g(f)o(atal,)g(as)396 2768 y(man)o(y)g(will)i(be)f(de)n(vice)g(or)g(manuf)o(acturer)d (speci\002c,)j(so)h(that)f(the)g(de)n(vice)g(id)g(may)g(be)g(used)g(to) g(disentangle)f(them.)396 2876 y(Ev)o(en)g(so,)i(it)g(is)g(clearly)e(a) i(good)e(idea)h(to)g(manage)f(this)i(namespace)e(well.)h(This)h (section)f(recommends)e(some)396 2984 y(practices)i(to)n(w)o(ards)g (this)g(goal.)396 3258 y(When)g(possible,)f(e)o(xtension)g(parameters)g (should)g(be)g(pre\002x)o(ed,)f(with)j(a)f(colon)f(separating)g(the)h (pre\002x)f(from)g(the)h(base)396 3366 y(parameter)f(name.)g(W)-7 b(ell)22 b(kno)n(wn)c(pre\002x)o(es)i(gi)n(v)o(e)f(clients)i(useful)e (information)f(about)h(parameters,)g(e)n(v)o(en)g(when)h(the)396 3474 y(client)g(lacks)h(information)d(about)h(the)h(speci\002c)g (parameter)-5 b(.)19 b(An)i(unkno)n(wn)c(pre\002x)j(at)g(least)h(allo)n (ws)g(the)f(client)g(to)396 3582 y(identify)f(the)i(parameter)d(as)j(a) g(nonstandard)c(e)o(xtension.)396 3856 y(This)k(document)d(speci\002es) j(a)f(number)f(of)g(standard)g(pre\002x)o(es.)h(W)-7 b(e)21 b(also)f(reserv)o(e)g(the)g(follo)n(wing)e(pre\002x)o(es)i(for) 396 3964 y(possible)g(use)h(in)f(future)f(re)n(visions)g(of)h(this)h (protocol:)e(IPP)-9 b(,)20 b(UPDF)-7 b(.)21 b(Further)m(,)e(the)h (Omni:)g(pre\002x)f(is)i(reserv)o(ed)e(for)h(the)396 4071 y(Omni)g(group)f(at)h(IBM,)h(and)e(CUPS:)j(is)f(reserv)o(ed)e(for) g(the)h(CUPS)i(project.)p Black -85 4190 a Fe(*)p Black 46 w(Robert,)d(do)g(you)g(want)g(STP:?)g(Anyone)h(else?)-2 4518 y Fb(5.1.)34 b(Quality:)396 4792 y Fg(Inkjet)20 b(printers)f(often)g(pro)o(vide)g(a)h(rich)g(set)h(of)f(options)f(for)h (tuning)f(output)g(quality)-5 b(,)18 b(or)i(selecting)g(a)h(point)e (along)h(a)396 4900 y(speed/quality)f(tradeof)n(f.)f(The)i(details)g (of)g(these)h(options)e(v)n(ary)g(widely)h(from)f(de)n(vice)g(to)i(de)n (vice.)e(When)h(made)396 5008 y(a)n(v)n(ailable)g(through)e(IJS,)j(the) o(y)e(should)g(be)h(grouped)e(under)h(the)h(Quality:)g(pre\002x.)p Black 3800 5569 a Fd(13)p Black eop %%Page: 14 14 14 13 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black 396 72 a Fg(F)o(or)h(e)o (xample,)f(HPIJS)i(1.0)e(has)i(the)f(follo)n(wing)e(parameters,)h(for)h (HP)g(inkjet)g(printers:)g(Quality)-5 b(,)19 b(MediaT)-7 b(ype,)396 180 y(ColorMode,)19 b(and)g(PenSet.)h(T)-7 b(o)21 b(be)f(compliant)f(with)h(v)o(ersions)f(0.30)g(and)h(later)g(of) g(IJS,)h(the)o(y)e(should)g(be)i(named)396 288 y(Quality:Quality)-5 b(,)19 b(Quality:MediaT)-7 b(ype,)17 b(Quality:ColorMode,)h(and)h (Quality:PenSet.)396 562 y(Note)h(that)h(Quality:MediaT)-7 b(ype)18 b(o)o(v)o(erlaps)g(some)n(what)i(with)g(PS:MediaT)-7 b(ype.)19 b(In)h(general,)f(the)h(former)f(speci\002es)h(a)396 670 y(color)g(pro\002le)f(or)h(printing)f(mode)g(\(for)g(e)o(xample,)g (to)h(optimize)f(printing)g(on)h(transparencies\).)e(The)i(latter)g(is) h(often)396 778 y(used)f(for)g(selecting)g(a)g(paper)f(source,)h(for)f (e)o(xample)g(letterhead)g(or)h(en)m(v)o(elopes.)e(The)i(former)e(is)k (more)d(lik)o(ely)h(to)g(be)396 886 y(useful)g(in)g(inkjet)g (applications.)396 1160 y(The)g(Dpi)g(and)g(ColorSpace)f(parameters)g (are)h(subsidiary)f(to)i(an)o(y)e(Quality:)h(parameters)f(pro)o(vided.) -2 1499 y Fb(5.2.)34 b(Finishing:)396 1773 y Fg(Finishing)20 b(options,)f(such)h(as)h(stapling)e(and)h(collating,)f(should)g(be)h (grouped)e(under)h(the)h(Finishing)g(pre\002x.)396 2046 y(The)g(PS)h(page)f(de)n(vice)f(parameter)g(namespace)g(includes)g (some)h(\002nishing)g(options,)f(including)f(Duple)o(x,)h(T)l(umble,) 396 2154 y(Collate,)i(Jog,)e(and)h(the)g(roll-fed)f(parameters:)g (RollFedMedia,)g(Orientation,)g(Adv)n(anceMedia,)f(Adv)n(anceDistance,) 396 2262 y(and)i(CutMedia.)f(F)o(or)h(these)h(parameters,)d(the)j(PS:)g (pre\002x)e(is)i(preferred.)396 2536 y(The)f(PPD)h(speci\002cation)f (describes)f(a)i(number)d(of)i(additional)f(\002nishing)g(parameters)g (\(section)h(5.18)f(of)h([PPD]\).)396 2644 y(Where)g(possible,)g (Finishing:)f(parameters)g(should)h(be)g(consistent)g(with)g(the)g(PPD) h(speci\002cation.)-2 2983 y Fb(5.3.)34 b(PPD:)396 3257 y Fg(The)20 b(PPD)h(speci\002cation[PPD])e(contains)h(a)g(lar)o(ge)f (number)g(of)h(options)f(and)h(parameters)f(that)h(may)g(be)g(pro)o (vided)d(by)396 3365 y(printers.)i(The)h(PPD:)h(pre\002x)f(is)h(reserv) o(ed)e(for)g(PPD)i(parameters)e(that)h(are)h(made)e(a)n(v)n(ailable)h (through)e(the)i(IJS)396 3473 y(protocol.)396 3747 y(In)g(cases)h (where)f(both)f(a)i(page)e(de)n(vice)h(parameter)e(and)i(a)g(PPD)h (parameter)e(specify)h(the)g(same)g(setting,)g(the)g(PS:)i(page)396 3854 y(de)n(vice)e(parameter)e(tak)o(es)j(priority)-5 b(.)18 b(In)i(man)o(y)f(cases,)i(page)e(de)n(vice)g(parameters)g(are)i (adv)n(antageous)c(because)j(the)o(y)396 3962 y(are)g(designed)f(for)h (both)f(getting)h(and)f(setting,)h(while)g(PPD)h(itself)g(is)g(a)g (static)g(\002le)g(format.)e(In)h(addition,)e(\002nishing)396 4070 y(parameters)h(should)g(be)i(under)d(the)j(Finishing:)e (namespace.)396 4344 y(In)h(general,)f(use)h(of)g(the)h(PPD:)g(e)o (xtension)d(is)k(not)d(recommended,)e(as)k(the)f(PPD)h(\002le)g(format) e(tends)h(to)h(be)f(speci\002c)g(to)396 4452 y(PostScript)g(printers.)p Black -85 4571 a Fe(*)p Black 46 w(W)-7 b(e)19 b(could)h(use)f(mor)m(e) g(speci\002c)h(advice)g(on)f(when)h(to)f(use)g(PPD:)f(par)o(ameter)o (s,)h(and)h(when)g(not)f(to.)f(Anyone)i(with)e(mor)m(e)i(PPD)e (knowledg)o(e)i(willing)-2 4678 y(to)f(help)g(with)f(this?)p Black 3800 5569 a Fd(14)p Black eop %%Page: 15 15 15 14 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black -2 91 a Fh(6.)39 b(Err)m(or)g(codes)396 365 y Fg(An)o(y)20 b(IJS)h(command)d(may)i (either)f(succeed)h(or)g(f)o(ail.)g(Success)h(is)g(indicated)e(by)h(an) g(IJS_A)m(CK)g(response.)f(F)o(ailure)h(is)396 473 y(indicated)f(by)h (an)g(IJS_N)m(AK)h(response,)e(which)g(includes)h(an)g(inte)o(ger)f (error)g(code.)396 747 y(The)h(current)f(draft)g(contains)h(the)g (follo)n(wing)f(error)g(codes:)396 948 y Ff(T)-8 b(able)21 b(4.)f(Draft)g(IJS)g(Err)o(or)g(Codes)p 396 1042 3501 4 v 396 1042 V 396 1169 4 127 v 400 1144 a Fc(Symbolic)j(de\002nition)p 1562 1169 V 398 w(Numeric)g(v)n(alue)p 2728 1169 V 601 w(Meaning)p 3893 1169 V 396 1172 3501 4 v 396 1172 V 396 1299 4 127 v 400 1274 a Fg(IJS_EIO)p 1562 1299 V 878 w(-2)p 2728 1299 V 1096 w(I/O)d(error)p 3893 1299 V 396 1302 3501 4 v 396 1302 V 396 1428 4 127 v 400 1403 a(IJS_EPR)m(O)m(T)o(O)p 1562 1428 V 701 w(-3)p 2728 1428 V 1096 w(protocol)e(error)p 3893 1428 V 396 1432 3501 4 v 396 1432 V 396 1558 4 127 v 400 1533 a(IJS_ERANGE)p 1562 1558 V 680 w(-4)p 2728 1558 V 1096 w(out)i(of)g(range)p 3893 1558 V 396 1561 3501 4 v 396 1561 V 396 1688 4 127 v 400 1663 a(IJS_EINTERN)m(AL)p 1562 1688 V 553 w(-5)p 2728 1688 V 1096 w(internal)f(error)p 3893 1688 V 396 1691 3501 4 v 396 1691 V 396 1817 4 127 v 400 1792 a(IJS_ENYI)p 1562 1817 V 818 w(-6)p 2728 1817 V 1096 w(not)h(yet)g(implemented)p 3893 1817 V 396 1821 3501 4 v 396 1821 V 396 1947 4 127 v 400 1922 a(IJS_ESYNT)-8 b(AX)p 1562 1947 V 637 w(-7)p 2728 1947 V 1096 w(syntax)19 b(error)p 3893 1947 V 396 1950 3501 4 v 396 1950 V 396 2077 4 127 v 400 2052 a(IJS_ECOLORSP)-8 b(A)m(CE)p 1562 2077 V 438 w(-8)p 2728 2077 V 1096 w(unkno)n(wn)18 b(color)h(space)p 3893 2077 V 396 2080 3501 4 v 396 2080 V 396 2206 4 127 v 400 2181 a(IJS_EUNKP)-8 b(ARAM)p 1562 2206 V 499 w(-9)p 2728 2206 V 1096 w(unkno)n(wn)18 b(parameter)p 3893 2206 V 396 2210 3501 4 v 396 2210 V 396 2336 4 127 v 400 2311 a(IJS_EJOBID)p 1562 2336 V 731 w(-10)p 2728 2336 V 1054 w(job)i(id)g(doesn')o(t)f(match)p 3893 2336 V 396 2339 3501 4 v 396 2339 V 396 2466 4 127 v 400 2441 a(IJS_ET)o(OOMANYJOBS)p 1562 2466 V 349 w(-11)p 2728 2466 V 1054 w(reached)g(limit)h(of)g(serv)o(er')-5 b(s)20 b(#jobs)p 3893 2466 V 396 2469 3501 4 v 396 2469 V 396 2595 4 127 v 400 2570 a(IJS_EB)o(UF)p 1562 2595 V 806 w(-12)p 2728 2595 V 1054 w(b)n(uf)n(fer)f(isn')o(t)h(big)f(enough)p 3893 2595 V 396 2599 3501 4 v 396 2599 V 396 2848 a(Ho)n(we)n(v)o(er)m (,)f(I)i(see)g(that)g(this)g(list)h(o)o(v)o(erlaps)d(the)i(status)g (codes)f(for)h(IPP)g(operations)e(\(section)h(13.2)g(of)g([RFC)i (2911]\))c(to)j(a)396 2956 y(lar)o(ge)f(e)o(xtent.)h(I)g(am)g(strongly) f(considering)f(unifying)g(these.)-2 3343 y Fh(7.)39 b(Ac)m(kno)n(wledg)q(ements)396 3617 y Fg(IJS)21 b(is)g(directly)f (inspired)f(by)h(the)g(HPIJS)h(w)o(ork)e(done)h(by)f(the)h(HP)h(V)-9 b(ancouv)o(er)18 b(team,)i(particularly)e(Da)n(vid)i(Suf)n(\002eld.)396 3725 y(This)h(spec)f(also)g(bene\002ted)g(from)f(comments)g(and)g (suggestions)h(from)f(Robert)g(Kra)o(witz,)h(Grant)g(T)-7 b(aylor)m(,)19 b(Glen)396 3833 y(Petrie,)h(Russell)i(Lang,)d(Michael)h (Sweet,)g(and)g(the)g(Omni)g(team)g(at)h(IBM:)f(Mark)g(V)-9 b(anderW)m(iele,)18 b(Mark)i(Hamzy)-5 b(,)19 b(and)396 3941 y(Pete)i(Zannucci.)p Black -85 4059 a Fe(*)p Black 46 w(Please)e(add)g(your)h(name)g(her)m(e)o(.)f(Incidentally)l(,)g(the) g Fa(<)p Fe(ac)o(kno)p Fa(>)g Fe(ta)o(g)g(of)g(DocBook)h(seems)f(mor)m (e)h(r)m(easonable)h(than)e(a)g(section,)g(b)o(ut)g(I)f(can')n(t)h(g)o (et)h(it)e(to)-2 4167 y(format)h(with)f(a)h(nice)g(title)o(.)-2 4412 y Fb(Ref)o(erences)396 4586 y Fg([RFC)j(2911])c(T)-6 b(.)20 b(Hastings,)g(R.)h(Herriot,)e(R.)i(deBry)-5 b(,)19 b(S.)i(Isaacson,)e(and)h(P)-9 b(.)20 b(Po)n(well,)g Fd(Internet)g (Printing)g(Pr)l(otocol/1.1:)596 4694 y(Model)f(and)h(Semantics)p Fg(,)f(September)g(2000.)396 4884 y([IEEE1284])e Fd(IEEE)j (Std.1284-1994)15 b(Standar)m(d)j(Signaling)g(Method)i(for)g(a)h (Bi-dir)m(ectional)d(P)-7 b(ar)o(allel)20 b(P)-7 b(eripher)o(al)596 4992 y(Interface)19 b(for)i(P)-7 b(er)o(sonal)20 b(Computer)o(s)p Fg(,)g(1994.)p Black 3800 5569 a Fd(15)p Black eop %%Page: 16 16 16 15 bop Black 0 TeXcolorgray Black 3020 -132 a Fd(IJS)20 b(Pr)l(otocol)f(Speci\002cation)p Black 396 72 a Fg([USBPrint])h Fd(Univer)o(sal)h(Serial)f(Bus)g(De)o(vice)g(Class)h(De\002nition)e (for)i(Printing)e(De)o(vices)p Fg(,)h(1.1,)g(January)f(2000.)396 263 y([PLRM])h Fd(P)-7 b(ostScript)20 b(Langua)o(g)o(e)f(Refer)m(ence)p Fg(,)g(third)h(edition,)f(Adobe)g(Systems)h(Incorporated,)d(Addison-W) -7 b(esle)o(y,)596 371 y(1999.)396 562 y([PPD])21 b Fd(P)-7 b(ostScript)20 b(Printer)g(Description)g(F)l(ile)h(F)-9 b(ormat)q Fg(,)20 b(v)o(ersion)f(4.3,)g(Adobe)g(Systems)i (Incorporated,)c(T)-6 b(echnical)596 670 y(Note)20 b(5003,)e(9)i (February)f(1996.)p Black 3798 5569 a Fd(16)p Black eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF