13ff48bf5SDavid du Colombier#!/bin/rc 2*9aeb76ceSDavid du Colombier# pdf2ps [-e] [gs-options] [input.pdf [output.ps]] - generate (e)ps from pdf 33ff48bf5SDavid du Colombierrfork e 43ff48bf5SDavid du Colombier 53ff48bf5SDavid du Colombierfn usage { 6*9aeb76ceSDavid du Colombier echo 'usage: pdf2ps [-e] [gs-options] [input.pdf [output.ps]]' >[1=2] 73ff48bf5SDavid du Colombier exit usage 83ff48bf5SDavid du Colombier} 93ff48bf5SDavid du Colombier 10*9aeb76ceSDavid du Colombieroutdev=pswrite 11*9aeb76ceSDavid du Colombierfin=/fd/0 12*9aeb76ceSDavid du Colombierfout=/fd/1 133ff48bf5SDavid du Colombierlang=(-'dLanguageLevel=2') 143ff48bf5SDavid du Colombieropt=() 153ff48bf5SDavid du Colombierwhile(! ~ $#* 0 && ~ $1 -* && ! ~ $1 - --){ 163ff48bf5SDavid du Colombier if(~ $1 '-dLanguageLevel='*) 173ff48bf5SDavid du Colombier lang=() 18*9aeb76ceSDavid du Colombier if not if(~ '-?' $1) 19*9aeb76ceSDavid du Colombier usage 20*9aeb76ceSDavid du Colombier if(~ $1 -e) 21*9aeb76ceSDavid du Colombier outdev=epswrite 22*9aeb76ceSDavid du Colombier if not 233ff48bf5SDavid du Colombier opt=($opt $1) 243ff48bf5SDavid du Colombier shift 253ff48bf5SDavid du Colombier} 263ff48bf5SDavid du Colombierif(~ $1 --) 273ff48bf5SDavid du Colombier shift 283ff48bf5SDavid du Colombier 293ff48bf5SDavid du Colombierswitch($#*){ 303ff48bf5SDavid du Colombiercase 0 31*9aeb76ceSDavid du Colombier ; 323ff48bf5SDavid du Colombiercase 1 333ff48bf5SDavid du Colombier fin=$1 343ff48bf5SDavid du Colombiercase 2 353ff48bf5SDavid du Colombier fin=$1 363ff48bf5SDavid du Colombier fout=$2 373ff48bf5SDavid du Colombiercase * 383ff48bf5SDavid du Colombier usage 393ff48bf5SDavid du Colombier} 403ff48bf5SDavid du Colombier 41*9aeb76ceSDavid du Colombierif(~ $fin -) 423ff48bf5SDavid du Colombier fin=/fd/0 433ff48bf5SDavid du Colombierif(~ $fout -) 443ff48bf5SDavid du Colombier fout=/fd/1 453ff48bf5SDavid du Colombier 463ff48bf5SDavid du Colombier# Doing an inital `save' helps keep fonts from being flushed between 473ff48bf5SDavid du Colombier# pages. We have to include the options twice because -I only takes 483ff48bf5SDavid du Colombier# effect if it appears before other options. 493ff48bf5SDavid du Colombier 50*9aeb76ceSDavid du Colombierexec gs $opt -dSAFER -dNOPAUSE -dBATCH -q -s'DEVICE='$outdev $opt $lang \ 51*9aeb76ceSDavid du Colombier -s'OutputFile=-' -c save pop -f $fin >$fout 52