xref: /plan9/sys/src/cmd/gs/lib/ps2epsi (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
17dd7cddfSDavid du Colombier#!/bin/sh
2*593dc095SDavid du Colombier# $Id: ps2epsi,v 1.10 2004/08/04 00:55:46 giles Exp $
3*593dc095SDavid du Colombier
4*593dc095SDavid du Colombier# This definition is changed on install to match the
5*593dc095SDavid du Colombier# executable name set in the makefile
6*593dc095SDavid du ColombierGS_EXECUTABLE=gs
77dd7cddfSDavid du Colombier
87dd7cddfSDavid du Colombiertmpfile=/tmp/ps2epsi$$
97dd7cddfSDavid du Colombier
107dd7cddfSDavid du Colombierexport outfile
117dd7cddfSDavid du Colombier
127dd7cddfSDavid du Colombierif [ $# -lt 1 -o $# -gt 2 ]; then
137dd7cddfSDavid du Colombier	echo "Usage: `basename $0` file.ps [file.epsi]" 1>&2
147dd7cddfSDavid du Colombier	exit 1
157dd7cddfSDavid du Colombierfi
167dd7cddfSDavid du Colombier
177dd7cddfSDavid du Colombierinfile=$1;
187dd7cddfSDavid du Colombier
197dd7cddfSDavid du Colombierif [ $# -eq 1 ]
207dd7cddfSDavid du Colombierthen
217dd7cddfSDavid du Colombier	case "${infile}" in
223ff48bf5SDavid du Colombier	  *.ps)		base=`basename "${infile}" .ps` ;;
233ff48bf5SDavid du Colombier	  *.cps)	base=`basename "${infile}" .cps` ;;
243ff48bf5SDavid du Colombier	  *.eps)	base=`basename "${infile}" .eps` ;;
253ff48bf5SDavid du Colombier	  *.epsf)	base=`basename "${infile}" .epsf` ;;
263ff48bf5SDavid du Colombier	  *)		base=`basename "${infile}"` ;;
277dd7cddfSDavid du Colombier	esac
287dd7cddfSDavid du Colombier	outfile=${base}.epsi
297dd7cddfSDavid du Colombierelse
307dd7cddfSDavid du Colombier	outfile=$2
317dd7cddfSDavid du Colombierfi
327dd7cddfSDavid du Colombier
333ff48bf5SDavid du Colombierls -l "${infile}" |
347dd7cddfSDavid du Colombierawk 'F==1	{
357dd7cddfSDavid du Colombier		cd="%%CreationDate: " $6 " " $7 " " $8;
367dd7cddfSDavid du Colombier		t="%%Title: " $9;
377dd7cddfSDavid du Colombier		f="%%For:" U " " $3;
387dd7cddfSDavid du Colombier		c="%%Creator: Ghostscript ps2epsi from " $9;
397dd7cddfSDavid du Colombier		next;
407dd7cddfSDavid du Colombier		}
417dd7cddfSDavid du Colombier	/^%!/	{next;}
427dd7cddfSDavid du Colombier	/^%%Title:/	{t=$0; next;}
437dd7cddfSDavid du Colombier	/^%%Creator:/	{c=$0; next;}
447dd7cddfSDavid du Colombier	/^%%CreationDate:/	{cd=$0; next;}
457dd7cddfSDavid du Colombier	/^%%For:/	{f=$0; next;}
467dd7cddfSDavid du Colombier	!/^%/	{
477dd7cddfSDavid du Colombier		print "/ps2edict 30 dict def";
487dd7cddfSDavid du Colombier		print "ps2edict begin";
497dd7cddfSDavid du Colombier		print "/epsititle (" t "\\n) def";
507dd7cddfSDavid du Colombier		print "/epsicreator (" c "\\n) def";
517dd7cddfSDavid du Colombier		print "/epsicrdt (" cd "\\n) def";
527dd7cddfSDavid du Colombier		print "/epsifor (" f "\\n) def";
537dd7cddfSDavid du Colombier		print "end";
547dd7cddfSDavid du Colombier		exit(0);
557dd7cddfSDavid du Colombier		}
563ff48bf5SDavid du Colombier	' U="$USERNAME$LOGNAME"  F=1 - F=2 "${infile}" >$tmpfile
577dd7cddfSDavid du Colombier
58*593dc095SDavid du Colombier$GS_EXECUTABLE -q -dNOPAUSE -dSAFER -dDELAYSAFER -r72 -sDEVICE=bit -sOutputFile=/dev/null $tmpfile ps2epsi.ps $tmpfile <"${infile}" 1>&2
597dd7cddfSDavid du Colombierrm -f $tmpfile
607dd7cddfSDavid du Colombier
617dd7cddfSDavid du Colombier(
627dd7cddfSDavid du Colombiercat << BEGINEPS
633ff48bf5SDavid du Colombiersave countdictstack mark newpath /showpage {} def /setpagedevice {pop} def
647dd7cddfSDavid du Colombier%%EndProlog
657dd7cddfSDavid du Colombier%%Page 1 1
667dd7cddfSDavid du ColombierBEGINEPS
677dd7cddfSDavid du Colombier
683ff48bf5SDavid du Colombiercat "${infile}" |
693ff48bf5SDavid du Colombiersed -e '/^%%BeginPreview:/,/^%%EndPreview[^!-~]*$/d' -e '/^%!PS-Adobe/d'\
703ff48bf5SDavid du Colombier	-e '/^%%[A-Za-z][A-Za-z]*[^!-~]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d'
717dd7cddfSDavid du Colombier
727dd7cddfSDavid du Colombiercat << ENDEPS
737dd7cddfSDavid du Colombier%%Trailer
743ff48bf5SDavid du Colombiercleartomark countdictstack exch sub { end } repeat restore
757dd7cddfSDavid du Colombier%%EOF
767dd7cddfSDavid du ColombierENDEPS
777dd7cddfSDavid du Colombier
783ff48bf5SDavid du Colombier) >> "${outfile}"
797dd7cddfSDavid du Colombier
807dd7cddfSDavid du Colombierexit 0
81