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