home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1992 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1992.iso
/
usenet
/
altsrcs
/
2
/
2588
< prev
next >
Wrap
Internet Message Format
|
1991-01-22
|
3KB
From: mh@roger.imsd.contel.com (Mike Hoegeman)
Newsgroups: alt.sources,comp.windows.news,comp.editors,comp.windows.open-look
Subject: elvis (vi clone) .doc to postscript filter
Message-ID: <1991Jan18.232508.9465@wlbr.imsd.contel.com>
Date: 18 Jan 91 23:25:08 GMT
this script "ftops", converts elvis .doc files to
postscript. Here is an example
refont -f *.doc | ftops > elvisDoc.ps
refont comes with the elvis package. ftops conforms enough to
structured postscript to make it usable with the X11/NeWS pageview
postscript previewer. just snip at cut here line and chmod +x the thing
--------------------------------CUT HERE------------------------------
#!/bin/sh
if [ X$1 != X ]; then
2>&1 cat <<\EOF
ftops is a simple filter, it reads from stdin and writes to stdout
it is used for converting files with \f<fontstyle> type font change
escapes to postscript. it is a quick hack to convert elvis .doc
files to postscript
e.g. usage;
refont -f *.doc | ftops > elvisDoc.ps
EOF
exit 1
fi
translate () {
sed \
-e 's,(,\\\(,g' \
-e 's,),\\\),g' \
-e 's,\\fB,) p B setfont (,g' \
-e 's,\\fI,) p I setfont (,g' \
-e 's,\\fR,) p R setfont (,g' \
-e 's,\\fU,) p U setfont (,g' \
-e 's,^,(,' \
-e 's,$,) ShoW_LinE,'
}
cat <<\PS_PROLOG
%!
%%Pages: (atend)
%%DocumentFonts Courier Courier-Oblique Courier-BoldOblique
%%Title: ftops shell script output
%%Creator: ftops
%%EndComments
/inch { 72 mul } bind def
/getfont { exch findfont exch scalefont } bind def
/SheetWidth 8.5 inch def
/SheetHeight 11 inch def
/LeftMargin 20 def
/TopMargin 20 def
/bodyfontsize 12 def
/bodyfont /Courier bodyfontsize getfont def
/R bodyfont def
/B /Courier-Bold bodyfontsize getfont def
/I /Courier-Oblique bodyfontsize getfont def
/U /Courier-BoldOblique bodyfontsize getfont def
/startpage
{
LeftMargin SheetHeight TopMargin sub moveto
R setfont
} def
/endpage { showpage } def
% Function s: print a source line
/s {
gsave show grestore
currentpoint
exch pop LeftMargin exch bodyfontsize sub
moveto
} def
/p { show } def
/ShoW_LinE { s } def
%%EndProlog
PS_PROLOG
translate | awk 'BEGIN {
lines=0
maxlines=66
pages=1
}
{ #MAIN
if ($NF~/ShoW_LinE/) {
++lines
}
if (lines==1) {
printf("%%%%Page: %d %d\n", pages, pages)
printf("startpage\n")
}
print
if (lines == maxlines) {
++pages
printf("endpage\n")
lines=0
}
}
END {
printf("%%%%Trailer\n")
printf("%%%%Pages: %d\n", pages)
} ' -
exit 0