Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_FS_1_19910112
-
system/2up.ps
There are no other files named 2up.ps in the archive.
%!
% Routine to convert straight text files to two up.
% output headers if defined.
% Inputs:
% File_Name - String to placed in Header line (filename)
% date - Date String
% time - Time string
% page - Starting page number (Optional)
%
/in. {72 mul} def
/line 512 string def % for input line buffering
/buff 10 string def % for page number conversion
/leftmargin where not
{ /leftmargin .75 in. def } {pop} ifelse
/bottom where not
{ /bottom .5 in. def } {pop} ifelse
/startX where not
{ /startX leftmargin def } {pop} ifelse
/startY where not
{ /startY 10.2 in. def } {pop} ifelse
/fontname where not
{ /fontname /Courier def } {pop} ifelse
/pointsize where not
{ /pointsize 11 def } {pop} ifelse
/leading where not
{ /leading pointsize 1 add def } {pop} ifelse
/headerfontname where not
{ /headerfontname /Times-Bold def } {pop} ifelse
/headerpointsize where not
{ /headerpointsize 11 def } {pop} ifelse
/headerfont
headerfontname findfont headerpointsize scalefont
def
/boxfontname where not
{ /boxfontname /Times-Bold def } {pop} ifelse
/boxpointsize where not
{ /boxpointsize 25 def } {pop} ifelse
/boxfont
boxfontname findfont boxpointsize scalefont
def
/center {
stringwidth
pop
2 div
sub
exch
moveto
} def
/determine_size {
gsave
2 copy stringwidth pop
sub
0 le
{currentfont [.95 0 0 .95 0 0] makefont setfont determine_size}
{exch pop center show} ifelse
grestore
} def
/replace_tabs {
( ) search
{mark exch dup show length 8 mod 1 7 {( ) show} for cleartomark
pop replace_tabs}
{show} ifelse
} def
/form_feeds {
(
) search
{replace_tabs pop new_page form_feeds}
{replace_tabs} ifelse
} def
/page where not
{ /page 1 def } {pop} ifelse
/pagenumber where not
{ /pagenumber true def } {pop} ifelse
% This routine will print a header at the top of each page
/printheader {
gsave
currentdict /File_Name known {
.95 setgray
newpath
.75 in. 10.5 in. moveto
.75 in. 10.8 in. lineto
2.0 in. 10.8 in. lineto
2.0 in. 10.5 in. lineto
closepath
fill
.7 setgray
newpath
11.6 in. 10.5 in. moveto
11.6 in. 10.8 in. lineto
12.85 in. 10.8 in. lineto
12.85 in. 10.5 in. lineto
closepath
fill
.985 setgray
newpath
2.0 in. 10.5 in. moveto
2.0 in. 10.7 in. lineto
11.6 in. 10.7 in. lineto
11.6 in. 10.5 in. lineto
closepath
fill
0 setgray
headerfont setfont
date 10.67 in. 1.35 in. 108 date determine_size
time 10.53 in. 1.35 in. 108 time determine_size
File_Name 10.55 in. 6.4 in. 550 File_Name determine_size
} if
pagenumber {
1 setgray
boxfont setfont
page buff cvs dup 10.54 in. exch 12.2 in. exch 90 exch determine_size
0 setgray
} if
grestore
startX startY moveto %printheader % execute header
} bind def
/new_page {
/page page 1 add def
page 2 mod 0 eq
{0 -790 translate printheader}
{showpage 0 395 translate .6 .5 scale printheader} ifelse
} def
/crlf {
leftmargin currentpoint exch pop % replace X with leftmargin
leading sub
dup bottom le
{ pop pop new_page}
{ moveto } ifelse
} bind def
/printfile {
line readline % read a line from the file
{ % 'if' procedure body (+boolean)
{ % 'while' procedure body
form_feeds crlf % show what's left by readline
currentfile cvlit % use as operand
line readline % and read the next line
not {currentpoint exit} if % exit if no more input to be had
} loop % end of while-proc
} if
showpage % when input file is exhausted
} bind def % /printfile
fontname findfont pointsize scalefont setfont
0 395 translate
.6 .5 scale
printheader
currentfile cvlit % uses rest of this file as input
printfile