77 lines
1.6 KiB
Bash
77 lines
1.6 KiB
Bash
#!/bin/sh
|
|
# $RCSfile: ps2epsi,v $ $Revision: 1.4.2.2 $
|
|
|
|
tmpfile=/tmp/ps2epsi$$
|
|
|
|
export outfile
|
|
|
|
if [ $# -lt 1 -o $# -gt 2 ]; then
|
|
echo "Usage: `basename $0` file.ps [file.epsi]" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
infile=$1;
|
|
|
|
if [ $# -eq 1 ]
|
|
then
|
|
case "${infile}" in
|
|
*.ps) base=`basename ${infile} .ps` ;;
|
|
*.cps) base=`basename ${infile} .cps` ;;
|
|
*.eps) base=`basename ${infile} .eps` ;;
|
|
*.epsf) base=`basename ${infile} .epsf` ;;
|
|
*) base=`basename ${infile}` ;;
|
|
esac
|
|
outfile=${base}.epsi
|
|
else
|
|
outfile=$2
|
|
fi
|
|
|
|
ls -l ${infile} |
|
|
awk 'F==1 {
|
|
cd="%%CreationDate: " $6 " " $7 " " $8;
|
|
t="%%Title: " $9;
|
|
f="%%For:" U " " $3;
|
|
c="%%Creator: Ghostscript ps2epsi from " $9;
|
|
next;
|
|
}
|
|
/^%!/ {next;}
|
|
/^%%Title:/ {t=$0; next;}
|
|
/^%%Creator:/ {c=$0; next;}
|
|
/^%%CreationDate:/ {cd=$0; next;}
|
|
/^%%For:/ {f=$0; next;}
|
|
!/^%/ {
|
|
print "/ps2edict 30 dict def";
|
|
print "ps2edict begin";
|
|
print "/epsititle (" t "\\n) def";
|
|
print "/epsicreator (" c "\\n) def";
|
|
print "/epsicrdt (" cd "\\n) def";
|
|
print "/epsifor (" f "\\n) def";
|
|
print "end";
|
|
exit(0);
|
|
}
|
|
' U="$USERNAME$LOGNAME" F=1 - F=2 ${infile} >$tmpfile
|
|
|
|
gs -q -dNOPAUSE -dSAFER -dDELAYSAFER -r72 -sDEVICE=bit -sOutputFile=/dev/null $tmpfile ps2epsi.ps $tmpfile <${infile} 1>&2
|
|
rm -f $tmpfile
|
|
|
|
(
|
|
cat << BEGINEPS
|
|
save countdictstack mark newpath /showpage {} def /setpagedevice {pop} def
|
|
%%EndProlog
|
|
%%Page 1 1
|
|
BEGINEPS
|
|
|
|
cat ${infile} |
|
|
sed -e '/^%%BeginPreview:/,/^%%EndPreview[^!-~]*$/d' -e '/^%!PS-Adobe/d'\
|
|
-e '/^%%[A-Za-z][A-Za-z]*[^!-~]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d'
|
|
|
|
cat << ENDEPS
|
|
%%Trailer
|
|
cleartomark countdictstack exch sub { end } repeat restore
|
|
%%EOF
|
|
ENDEPS
|
|
|
|
) >> ${outfile}
|
|
|
|
exit 0
|