#!/bin/csh # # Originally a ksh script somewhere on the WWW, converted to csh by # Sven Geier to bring it into the 21st century. # # Updated! Improved! # Creates PS and PDF files. Also adds a half-inch margin all around... # It's a floor wax AND a dessert topping! echo "poster_resize v2.3" # Remove ending ".ps" set FILE=`basename $1 .ps` set INFILE=${FILE}.ps set OUTFILE=${FILE}.resize.ps set TMPFILE=${FILE}.tmp.ps # Test existence of the PS File if ( ! -r "$INFILE" ) then if ( "$1" == "" ) then echo "Error: No input file specified." else echo "Error: Cannot read file $INFILE" endif echo "Usage: poster_resize []" exit endif echo "Input file: ${INFILE}" if ( "$2" == "" ) then set SCALE=2.828 echo "No scale-factor specified. Using default value (ie. A3->A0): $SCALE" else set SCALE=$2 echo "Specified scale-factor is: $SCALE" endif set GlobalBB=`grep '%%BoundingBox: ' ${FILE}.ps | head -1` # Do the job set X0=`echo $GlobalBB | awk '{print $2}'` set Y0=`echo $GlobalBB | awk '{print $3}'` set X1=`echo $GlobalBB | awk '{print $4}'` set Y1=`echo $GlobalBB | awk '{print $5}'` echo "Old Bounding Box: ${X0} ${Y0} ${X1} ${Y1}" set DX0=`echo $X1-$X0+30|bc` set DY0=`echo $Y1-$Y0|bc` set X2=`echo "$SCALE*$X0"|bc` set Y2=`echo "$SCALE*$Y0"|bc` set X3=`echo "$SCALE*$X1"|bc` set Y3=`echo "$SCALE*$Y1"|bc` set DX2=`echo "$DX0*$SCALE"|bc` set DY2=`echo "$DY0*$SCALE"|bc` echo "New Bounding Box: ${X2} ${Y2} ${X3} ${Y3}" psresize -W${DX0} -H${DY0} -w${DX2} -h${DY2} ${INFILE} ${TMPFILE} awk 'BEGIN {aaa = 0} \ /%%BoundingBox/&&aaa==0 {print "%%BoundingBox:",'$X2','$Y2','$X3'+101,'$Y3'+61 ; aaa = 1 ; getline} \ /%%DocumentPaperSizes: a3/||/%%BeginPaperSize: a3/ {getline} \ /0.000000 0.000000 translate/&&bbb==0 {print "36 dup translate"; bbb=1} \ {print}' \ $TMPFILE > ${OUTFILE} rm -f ${TMPFILE} echo "Job done. \ Created: ${OUTFILE}" ps2pdf -dDEVICEWIDTHPOINTS=$DX2 -dDEVICEHEIGHTPOINTS=$DY2 ${OUTFILE} echo "Created: ${FILE}.resize.pdf" exit