@ @Lerrordict begin /handleerror { $error begin newerror { /newerror false @Ldef showpage 72 72 scale /x .25 def /y 10 def /Helvetica findfont .2 @Lscalefont setfont x y moveto (PostScript Error Handler) @Lshow /y y .2 sub .2 sub def x y moveto @L(Offending Command = ) show /command load { dup type /stringtype ne { ( @Lmax err string ) cvs } if show } exec /y y .2 sub def x y moveto (Error @L= ) show errorname { dup type dup ( max err string ) cvs show ( : ) show @L/stringtype ne { ( max err string ) cvs } if show } exec /y y .2 sub def @Lx y moveto (Stack =) show ostack { /y y .2 sub def x 1 add y moveto dup @Ltype /stringtype ne { ( max err string ) cvs } if show } forall showpage @L} if end } def end @L% Pull off the job specific values: @L%---------------------------------- @L/domain (@J@L) def @L/name (@N@L) def @L/domainname (@J@L\\@N@L) def @L/jobid(@I@L) def @L/date (@D@L) def @L/time (@T@L) def @L% Get the page limits @L%-------------------- @Lnewpath clippath closepath pathbbox @L/ymax exch def @L/xmax exch def @L/ymin exch def @L/xmin exch def @L/PrintWidth xmax xmin sub def @L/PrintHeight ymax ymin sub def @L% Define some handy procedures and values @L%---------------------------------------- @L/inch {72 mul} def @L/White 1 def @L/Black 0 def @L/Gray .9 def @L/CenterString { @L /str exch def /width exch def @L width str stringwidth pop sub 2 div 0 rmoveto @L str @L} def @L% Print the printers logo (if any) @L%--------------------------------- @L/SysPrint where @L{ @L pop @L SysPrint @L}{ @L /Times-Roman findfont .5 72 mul scalefont setfont @L PrintWidth 2 div 6 72 mul moveto @L (\\\\server\\name) dup stringwidth pop 2 div neg 0 rmoveto show @L PrintWidth 2 div 5 72 mul moveto @L (PSCRIPT Page Separator) dup stringwidth pop 2 div neg 0 rmoveto show @L}ifelse @L% Set some standard parameters @L%----------------------------- @L100 0 {dup mul exch dup mul add 1 exch sub} setscreen @L2 setlinewidth 2 setmiterlimit @L% Clear and outline the title area @L%--------------------------------- @Lnewpath @Lxmin ymax moveto @Lxmax ymax lineto @Lxmax ymax 1.5 inch sub lineto @Lxmin ymax 1.5 inch sub lineto @Lclosepath @Lgsave @Lcurrentgray 1 setgray fill setgray @Lgrestore @Lcurrentlinewidth 1 setlinewidth stroke setlinewidth @L% Add the label header @L%--------------------- @L/Helvetica findfont .2 inch scalefont setfont @L% Date -------------------------------------- @Lxmin .25 inch add ymax .2 inch sub moveto @L(Date: ) show date show @L% Time @LPrintWidth 1.5 inch sub ymax .2 inch sub moveto @L(Time: ) show time show @L% Job Number @LPrintWidth 2 div ymax .2 inch sub moveto @Ljobid stringwidth pop @L( : ) stringwidth pop @Lname stringwidth pop @Ladd add 2 div @Lneg 0 rmoveto @Ljobid show ( : ) show @Ldomain show (\\) show @Lname show @L% Underline label header @Lnewpath @Lxmin ymax .3 inch sub moveto xmax ymax .3 inch sub lineto @Lclosepath @Lstroke @L% Add the username @L%----------------- @L/Helvetica-Bold findfont .5 inch scalefont setfont @Lnewpath @Lxmin ymax 1.25 inch sub moveto @LPrintWidth domainname CenterString true charpath @Lclosepath @Lgsave @LGray setgray fill @Lgrestore @L.5 setlinewidth stroke @Lshowpage @E