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