iqbal@seas.gwu.edu (Iqbal Qazi) (06/13/91)
Here is my program, ps2txt, with a small bug fix. For those seeing it
for the first time: it extracts strings from PostScript files,
hopefully converting the original file to text. Since a couple of
people asked me about it, and 'cause it's small I'm reposting it.
-------------------------------duh-------------------------------
/*
ps2txt.c Iqbal Qazi
June 11, 1991
USAGE: ps2txt [-] [filename]
Extracts strings from PostScript file. Takes input from
filename or standard input, output goes to standard output.
i.e. ps2txt homer.ps
ps2txt dweezil.ps > dweezil.txt
cat file.ps | ps2txt - | more
ps2txt - < homer.ps
Comments, suggestions, problems to: Iqbal Qazi
(iqbal@sparko.gwu.edu)
VERSION: 1.1 Fixed bug dealing with comments
*/
#include <stdio.h>
#define ABORT(X,Y) printf(X,Y);puts(usage); exit(0)
char *usage="Usage: ps2txt [-] [filename]";
char *str;
char junk[80];
FILE *file, *source;
void main(argc, argv)
int argc; char **argv;
{
int ch, para=0, last=0;
str=argv[1];
if (argc==1) { ABORT("",""); }
if (argc!=2) { ABORT("ps2txt: Too many arguments.\n\n",""); }
if ((str[0]=='-') && (str[1]==0))
source=stdin;
else if (str[0]!='-')
if ((file=fopen(argv[1],"r"))==NULL)
{ABORT("ps2txt: Error opening file: %s.\n\n",argv[1]);}
else source=file;
else
{ ABORT("ps2txt: No such option: %s.\n\n",argv[1]); }
while ((ch=fgetc(source)) != EOF)
{
switch (ch)
{
case '%' : if (para==0) fgets(junk, 80, source);
else putchar(ch);
case '\n' : if (last==1) { puts(""); last=0; } break;
case '(' : if (para++>0) putchar(ch); break;
case ')' : if (para-->1) putchar(ch); last=1; break;
case '\\' : if (para>0)
switch(ch=fgetc(source))
{
case '(' :
case ')' : putchar(ch); break;
case 't' : putchar('\t'); break;
case 'n' : putchar('\n'); break;
case '\\': putchar('\\'); break;
case '0' : case '1' : case '2' : case '3' :
case '4' : case '5' : case '6' : case '7' :
putchar('\\');
default : putchar(ch); break;
}
break;
default : if (para>0) putchar(ch);
}
}
}
--
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~|~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^
Iqbal Qazi | If cartoons were meant for adults,
Internet-> iqbal@sparko.gwu.edu | they'd be on in prime-time
(or even-> Bitnet: WQ956C@GWUVM) | -- Lisa