#!/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 <ps-file> [<scale-factor>]"
    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




