xref: /plan9-contrib/rc/bin/pdf2ps (revision 9aeb76ce36a36ea3426f1a033ec905c77e766a95)
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