xref: /plan9-contrib/rc/bin/ps2pdf (revision d2fd7a449ba15afc3f4999c6b00b9a2264c19913)
13ff48bf5SDavid du Colombier#!/bin/rc
2*d2fd7a44SDavid du Colombier# ps2pdf - convert PostScript to PDF
33ff48bf5SDavid du Colombierrfork e
43ff48bf5SDavid du Colombier
53ff48bf5SDavid du Colombierfn usage {
6*d2fd7a44SDavid du Colombier	echo 'usage: ps2pdf [gs-options] [input.ps [output.pdf]]' >[1=2]
73ff48bf5SDavid du Colombier	exit usage
83ff48bf5SDavid du Colombier}
93ff48bf5SDavid du Colombier
103b86f2f8SDavid du Colombier# gs's pdfwrite sometimes emits bad pdf at level 1.2,
113b86f2f8SDavid du Colombier# but 1.4 seems to work fine.
123ff48bf5SDavid du Colombiercompat=(-'dCompatibilityLevel=1.2')
133ff48bf5SDavid du Colombieropt=()
143ff48bf5SDavid du Colombierwhile(! ~ $#* 0 && ~ $1 -* && ! ~ $1 - --){
153ff48bf5SDavid du Colombier	if(~ $1 '-dCompatibilityLevel='*)
163ff48bf5SDavid du Colombier		compat=()
173ff48bf5SDavid du Colombier	opt=($opt $1)
183ff48bf5SDavid du Colombier	shift
193ff48bf5SDavid du Colombier}
203ff48bf5SDavid du Colombierif(~ $1 --)
213ff48bf5SDavid du Colombier	shift
223ff48bf5SDavid du Colombier
233ff48bf5SDavid du Colombierswitch($#*){
243ff48bf5SDavid du Colombiercase 0
253ff48bf5SDavid du Colombier	fin='-'
263ff48bf5SDavid du Colombier	fout='-'
273ff48bf5SDavid du Colombiercase 1
283ff48bf5SDavid du Colombier	fin=$1
293ff48bf5SDavid du Colombier	fout='-'
303ff48bf5SDavid du Colombiercase 2
313ff48bf5SDavid du Colombier	fin=$1
323ff48bf5SDavid du Colombier	fout=$2
333ff48bf5SDavid du Colombiercase *
343ff48bf5SDavid du Colombier	usage
353ff48bf5SDavid du Colombier}
363ff48bf5SDavid du Colombier
373ff48bf5SDavid du Colombier# We have to include the options twice because -I only takes effect
383ff48bf5SDavid du Colombier# if it appears before other options.
393ff48bf5SDavid du Colombier
40fb7f0c93SDavid du Colombiergscmd=( gs $opt -dSAFER -dNOPAUSE -dBATCH -q -s'DEVICE=pdfwrite' \
413ff48bf5SDavid du Colombier	$opt $compat \
42fb7f0c93SDavid du Colombier	-s'OutputFile='$fout -c .setpdfwrite -f $fin)
43fb7f0c93SDavid du Colombierexec $gscmd
44