#!/bin/bash

# Produce a trimmed HPGL/2 RTL plot.  Ignore the Plot Size command in
# the RTL/GL2 file and produce output whose extant corresponds to the
# bounding box of all the graphics in the plot.  This requires 2
# passes over the file.

for f in $*
do
    # get the bounding box in points.
    BBOX_PTS=( $(gpcl6 -dNOPAUSE -lRTL -sDEVICE=bbox $f 2>&1 |\
       grep "%%BoundingBox" | awk '{print $2, $3, $4, $5}') )

    # convert to plotter units
    SF="(1016.0/72.0)"
    for coord in 0 1 2 3
    do
        BBOX_PLU[$coord]=$(echo "scale=2;${BBOX_PTS[$coord]} * $SF"|bc)
    done

    # now run pcl with our new coordinates.  Annoyingly those @PJL's
    # need to start in the first colummn, as no leading space is
    # allowed by the PJL parser.
    gpcl6 -lRTL \
      -J"@PJL DEFAULT PLOTSIZEOVERRIDE=ON;\
@PJL DEFAULT PLOTSIZE1=${BBOX_PLU[2]};\
@PJL DEFAULT PLOTSIZE2=${BBOX_PLU[3]}"\
    -sDEVICE=pdfwrite -o "$(basename $f).pdf" $f
done
