home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The SelectWare System Volume 2 #3
/
The_SelectWare_System_Series_1_Volume_2_Number_3_Selectware.iso
/
sof10020
/
pf.ps
< prev
next >
Wrap
Text File
|
1988-05-25
|
9KB
|
318 lines
% Professional File PostScript prologue file
% version 2.00
% Copyright 1988 Software Publishing Corporation
/PWdict 75 dict def % define the Professional Write dictionary
PWdict begin
/bd {bind def} bind def
/Linefont % recreate IBM's line drawing chars
10 dict dup begin
/FontType 3 def
/FontMatrix [.001 0 0 .001 0 0] def
/FontBBox [0 -300 600 700] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 176 [
/onequarter /onehalf /threequarters
/tb /tbl /tbl2 /t2b2l /b2l /bl2 /t2b2l2 /t2b2 /b2l2 /t2l2 /t2l
/tl2 /bl /tr /trl /rbl /trb /rl /trbl /tr2b /t2rb2 /t2r2 /r2b2
/t2r2l2 /r2b2l2 /t2r2b2 /r2l2 /t2r2b2l2 /tr2l2 /t2rl /r2bl2
/rb2l /t2r /tr2 /r2b /rb2 /t2rb2l /tr2bl2 /tl /rb
/block /bblock /lblock /rblock /tblock
] putinterval
Encoding 32 /space put
Encoding 254 /squarebullet put
/CharDefs 80 dict def CharDefs begin
/.notdef {} def
/lx 0 def
/rx 600 def
/by -300 def
/ty 700 def
/cx 300 def
/cy 350 def
/c1x 245 def
/c2x 355 def
/c1y 295 def
/c2y 405 def
/sqblx 150 def
/sqbrx 450 def
/sqbty 500 def
/sqbby 200 def
/l {gsave lx currentpoint exch pop lineto stroke grestore} bd
/r {gsave rx currentpoint exch pop lineto stroke grestore} bd
/t {gsave currentpoint pop ty lineto stroke grestore} bd
/b {gsave currentpoint pop by lineto stroke grestore} bd
/box {3 index 3 index moveto 3 index 1 index lineto
1 index 1 index lineto 1 index 3 index lineto
closepath fill pop pop pop pop} bd
/tb {cx ty moveto b} bd
/tbl {cx cy moveto t b l} bd
/bl {cx cy moveto b l} bd
/tr {cx cy moveto t r} bd
/trl {cx cy moveto t r l} bd
/rbl {cx cy moveto r b l} bd
/trb {cx cy moveto t r b} bd
/rl {lx cy moveto r} bd
/trbl {cx cy moveto t r b l} bd
/tl {cx cy moveto t l} bd
/rb {cx cy moveto r b} bd
/tbl2 {cx c1y moveto t b l cx c2y moveto l} bd
/t2b2l {c1x cy moveto t b l c2x ty moveto b} bd
/b2l {c2x cy moveto b l c1x cy moveto b} bd
/bl2 {cx c2y moveto b l cx c1y moveto l} bd
/t2b2l2 {c1x c1y moveto b l c1x c2y moveto t l c2x ty moveto b} bd
/t2b2 {c1x ty moveto b c2x ty moveto b} bd
/b2l2 {c1x c1y moveto b l c2x c2y moveto b l} bd
/t2l2 {c1x c2y moveto t l c2x c1y moveto t l} bd
/t2l {c2x cy moveto t l c1x cy moveto t} bd
/tl2 {cx c1y moveto t l cx c2y moveto l} bd
/tr2b {cx c1y moveto t r b cx c2y moveto r} bd
/t2rb2 {c2x cy moveto t r b c1x ty moveto b} bd
/t2r2 {c1x c1y moveto t r c2x c2y moveto t r} bd
/r2b2 {c1x c2y moveto r b c2x c1y moveto r b} bd
/t2r2l2 {c1x c2y moveto t l c2x c2y moveto t r lx c1y moveto r} bd
/r2b2l2 {lx c2y moveto r c1x c1y moveto b l c2x c1y moveto r b} bd
/t2r2b2 {c2x c2y moveto t r c2x c1y moveto r b c1x ty moveto b} bd
/r2l2 {lx c1y moveto r lx c2y moveto r} bd
/t2r2b2l2 {c1x c1y moveto b l c1x c2y moveto t l c2x c2y moveto t r c2x c1y moveto r b} bd
/tr2l2 {cx c2y moveto t r l lx c1y moveto r} bd
/t2rl {c1x cy moveto t r l c2x cy moveto t} bd
/r2bl2 {lx c2y moveto r cx c1y moveto r b l} bd
/rb2l {c1x cy moveto r b l c2x cy moveto b} bd
/t2r {c1x cy moveto t r c2x cy moveto t} bd
/tr2 {cx c1y moveto t r cx c2y moveto r} bd
/r2b {cx c2y moveto r b cx c1y moveto r} bd
/rb2 {c1x cy moveto r b c2x cy moveto b} bd
/t2rb2l {c1x cy moveto t r b l c2x ty moveto b} bd
/tr2bl2 {cx c1y moveto t r b l lx c2y moveto r} bd
/block {lx by rx ty box} bd
/bblock {lx by rx cy box} bd
/lblock {lx by cx ty box} bd
/rblock {cx by rx ty box} bd
/tblock {lx cy rx ty box} bd
/onequarter {lx by rx ty box} bd
/onehalf {lx by rx ty box} bd
/threequarters {lx by rx ty box} bd
/space {} bd
/squarebullet {sqblx sqbby sqbrx sqbty box} bd
end
/FontInfo 10 dict def FontInfo begin
/Notice (Copyright 1988 Software Publishing Corporation) def
/FullName (Line-Light) def
/FamilyName (Line) def
/Weight (Light) def
/version (001.000) def
/UnderlinePosition -80 def
/UnderlineThickness 40 def
/isFixedPitch true def
/ItalicAngle 0 def
end
end
def
/SPCEncoding 256 array def % access foreign chars
StandardEncoding SPCEncoding copy pop
SPCEncoding 128 [
/Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring
/ccedilla /ecircumflex /edieresis /egrave /idieresis /icircumflex
/igrave /Adieresis /Aring /Eacute /ae /AE /ocircumflex /odieresis /ograve
/ucircumflex /ugrave /ydieresis /Odieresis /Udieresis /cent /sterling
/yen /.notdef /florin /aacute /iacute /oacute /uacute /ntilde /Ntilde
/ordfeminine /ordmasculine /questiondown /.notdef /.notdef /.notdef
/.notdef /exclamdown /guillemotleft /guillemotright
] putinterval
SPCEncoding 20 [/paragraph /section] putinterval
SPCEncoding 225 [/germandbls /dagger /daggerdbl
/quotedblleft /quotedblright] putinterval
SPCEncoding 249 [/bullet /periodcentered] putinterval % print grid chars.
/MakeSPCFont % make fonts with foreign chars in 'em
{
FontDirectory 1 index known not FontDirectory 3 index known and
{
exch findfont dup length dict exch
{ 1 index /FID eq
{ pop pop }
{ 1 index /Encoding eq { pop SPCEncoding } if
2 index 3 1 roll put
} ifelse
} forall
definefont pop
}
{pop pop} ifelse
} bd
/cstr 100 string def
/sstr (-SPC) def
/setSPCfonts
{
fonts
{
dup cstr cvs sstr search
{exch pop exch pop cvn exch MakeSPCFont}
{pop pop} ifelse
} forall
} bd
/family 0 def % state variables
/bold false def
/underline false def
/lineheight 11.75 def
/fontsize 12 def
/linedrawing false def
/dirty false def
/leftmargin 18 def % some useful numbers
/line1 {11 72 mul lineheight sub 6 sub} bd
/bottom 0 def
/savestate % be able to save and restore state
{
family bold underline
lineheight fontsize linedrawing
manualfeedOK {statusdict begin manualfeed end} if
} bd
/getstate % restoring state, set orientation and font
{
manualfeedOK {statusdict begin /manualfeed exch def end} if
/linedrawing exch def
/fontsize exch def
/lineheight exch def
/underline exch def
/bold exch def
/family exch def
leftmargin line1 moveto
setfontnstyle
} bd
/fonts % all fonts accessible from Professional File
[
/Courier-SPC /Courier-Bold-SPC /Courier-Oblique-SPC /Courier-BoldOblique-SPC
] def
/fontlength fonts length def % length of fonts array
/bounds % bounds-checking algorithm
{
3 index 3 index lt 4 index 3 index gt or
{ {exch} if pop exch pop}
{pop pop pop} ifelse
} bd
/init % initialization - install fonts, start page 1
{
/Linefont Linefont definefont pop
setSPCfonts startpage setfontnstyle
} bd
% the following routines are called from other routines
% routines include start new page, eject page, set font and style
% (style includes bold, italic, underline, super/subscript, line drawing),
% draw an underline
/startpage {/s1 save def leftmargin line1 moveto} bd
/endpage {showpage s1 restore} bd
/setfontnstyle
{
linedrawing
{/Linefont findfont [fontsize 0 0 lineheight 0 0] makefont setfont}
{
fonts family 4 mul bold {1 add} if
0 fontlength false bounds get
findfont fontsize scalefont
setfont
} ifelse
} bd
/markdict 1 dict def markdict begin
/cleartomarkdict
{ {currentdict end /cleartomarkdict known {exit} if} loop} bd
end
/showunderline
{
dup stringwidth pop exch show
gsave markdict begin mark exch
{
currentfont begin
FontMatrix
FontInfo begin
0 UnderlinePosition 2 index transform rmoveto
UnderlineThickness 0 3 -1 roll transform pop setlinewidth
end
end
neg 0 rlineto stroke
} stopped
pop cleartomarkdict cleartomark grestore
} bd
/manualfeedOK
markdict begin mark
{
statusdict begin
currentdict /manualfeed known
{/manualfeed load type /booleantype eq} {false} ifelse
} stopped cleartomarkdict {cleartomark false} {exch pop} ifelse
def
% these routines are called from the script
% included are turning all enhancements on and off,
% (enhancements are bold and underline)
% changin font size, showing a string, going to a new line, ejecting a page
/U {/underline true def} bd
/u {/underline false def} bd
/B {/bold true def setfontnstyle} bd
/b {/bold false def setfontnstyle} bd
/SZ {/fontsize exch def setfontnstyle} bd
/nl {
currentpoint lineheight sub exch pop % new y on top of stack
dup bottom le % do a form feed if below bottom
{
ff
pop % get rid of dup y
}
{
leftmargin exch moveto
} ifelse
} bd
/done { % need a form feed when the document is done and we are not at the
% first line of the page (i.e. didn't just do a form feed)
currentpoint round exch pop % y on top of stack
line1 truncate ne % do a form feed if not on line1
{
ff
} if
} bd
/ff {savestate endpage startpage getstate} bd
/s
{
underline {showunderline} {show} ifelse
dirty not {/dirty true def} if
} bd
end