Blame


1 61746420 2005-08-31 devnull #!/usr/local/plan9/bin/rc
2 61746420 2005-08-31 devnull
3 61746420 2005-08-31 devnull #
4 61746420 2005-08-31 devnull # we don't go through postscript, because to
5 61746420 2005-08-31 devnull # get to postscript, we send the pdf through gs!
6 61746420 2005-08-31 devnull # much easier to just go directly.
7 61746420 2005-08-31 devnull #
8 61746420 2005-08-31 devnull
9 61746420 2005-08-31 devnull # usage: pdfgs pdffile [gsdev]
10 61746420 2005-08-31 devnull
11 61746420 2005-08-31 devnull switch($#*) {
12 61746420 2005-08-31 devnull case 2
13 61746420 2005-08-31 devnull GSDEVICE=$2
14 61746420 2005-08-31 devnull case 1
15 61746420 2005-08-31 devnull GSDEVICE=`{echo $LPCLASS | sed 's/(.*\+)?gs!([^+]*)(\+.*)?/\2/'}
16 61746420 2005-08-31 devnull case *
17 61746420 2005-08-31 devnull echo 'usage: pdfgs pdffile [gsdev]' >[1=2]
18 61746420 2005-08-31 devnull }
19 61746420 2005-08-31 devnull
20 61746420 2005-08-31 devnull GSTMPFILE=/tmp/pdf^$pid
21 61746420 2005-08-31 devnull GSOPT=('-sDEVICE='$GSDEVICE '-sOutputFile='^$GSTMPFILE -dSAFER -dNOPAUSE -dQUIET -dBATCH -dNOPAUSE)
22 61746420 2005-08-31 devnull
23 61746420 2005-08-31 devnull #
24 61746420 2005-08-31 devnull # RSC: pswrite produces weird overbars on various
25 61746420 2005-08-31 devnull # letters, most notably Times-Roman A and h, unless
26 61746420 2005-08-31 devnull # we use LanguageLevel=1. This doesn't seem to be
27 61746420 2005-08-31 devnull # constrained to hp4simx printers, so just use LanguageLevel 1
28 61746420 2005-08-31 devnull # all the time.
29 61746420 2005-08-31 devnull #
30 61746420 2005-08-31 devnull
31 61746420 2005-08-31 devnull #if(~ $dev pswrite && ~ $LPCLASS *hp4simx*)
32 61746420 2005-08-31 devnull # GSOPT=($GSOPT '-dLanguageLevel=1')
33 61746420 2005-08-31 devnull if(~ $GSDEVICE pswrite)
34 61746420 2005-08-31 devnull GSOPT=($GSOPT '-dLanguageLevel=1')
35 61746420 2005-08-31 devnull
36 61746420 2005-08-31 devnull if(~ $OLIST '')
37 61746420 2005-08-31 devnull gs $GSOPT $1
38 61746420 2005-08-31 devnull if not {
39 61746420 2005-08-31 devnull PGLIST=`{echo $OLIST | sed 's/-o//;s/,/ /g;s/ / /g' | tr -cd '0-9 -'}
40 61746420 2005-08-31 devnull GSPGLIST=()
41 61746420 2005-08-31 devnull for(i in $PGLIST){
42 61746420 2005-08-31 devnull switch($i){
43 61746420 2005-08-31 devnull case -*
44 61746420 2005-08-31 devnull GSPGLIST=($GSPGLIST `{seq 1 `{echo $i|tr -d '-'}})
45 61746420 2005-08-31 devnull case *-
46 61746420 2005-08-31 devnull # BUG assume 100 >= number of pages
47 61746420 2005-08-31 devnull GSPGLIST=($GSPGLIST `{seq `{echo $i|tr -d '-'} 100})
48 61746420 2005-08-31 devnull case *-*
49 61746420 2005-08-31 devnull GSPGLIST=($GSPGLIST `{seq `{echo $i|tr '-' ' '}})
50 61746420 2005-08-31 devnull case *
51 61746420 2005-08-31 devnull GSPGLIST=($GSPGLIST $i)
52 61746420 2005-08-31 devnull }
53 61746420 2005-08-31 devnull }
54 61746420 2005-08-31 devnull GSPGLIST=$"GSPGLIST
55 61746420 2005-08-31 devnull echo '
56 61746420 2005-08-31 devnull /Page null def
57 61746420 2005-08-31 devnull /Page# 0 def
58 61746420 2005-08-31 devnull /PDFSave null def
59 61746420 2005-08-31 devnull /DSCPageCount 0 def
60 61746420 2005-08-31 devnull /DoPDFPage {dup /Page# exch store pdfgetpage pdfshowpage} def
61 61746420 2005-08-31 devnull GS_PDF_ProcSet begin
62 61746420 2005-08-31 devnull pdfdict begin
63 61746420 2005-08-31 devnull ('^$1^') (r) file pdfopen begin
64 61746420 2005-08-31 devnull /npage pdfpagecount def
65 61746420 2005-08-31 devnull ['^$GSPGLIST^']
66 61746420 2005-08-31 devnull {
67 61746420 2005-08-31 devnull dup dup
68 61746420 2005-08-31 devnull 1 ge exch npage le and
69 61746420 2005-08-31 devnull { DoPDFPage }
70 61746420 2005-08-31 devnull { pop }
71 61746420 2005-08-31 devnull ifelse
72 61746420 2005-08-31 devnull } forall
73 61746420 2005-08-31 devnull ' | gs $GSOPT - >/dev/null >[2=1]
74 61746420 2005-08-31 devnull }
75 61746420 2005-08-31 devnull
76 61746420 2005-08-31 devnull cat $GSTMPFILE
77 61746420 2005-08-31 devnull rm -f $GSTMPFILE
78 61746420 2005-08-31 devnull exit ''