This seems to work even without the structuring comments (%%EndSetup, %%Page). The following worked for me:
#!/usr/bin/perl
$usage="Usage: $0 x1 y1 x2 y2 file.ps";
$x1=shift @ARGV;
$y1=shift @ARGV;
$x2=shift @ARGV;
$y2=shift @ARGV;
($x1 && $y2 && $x2 && $y2 ) or
die "$usage\n";
$w=$x2-$x1;
$h=$y2-$y1;
$flag=0;
while (<>) {
if (/^%%BoundingBox:/) {
print "%%BoundingBox: 0 0 $w $h\n";
print "-$x1 -$y1 translate\n";
print "$x1 $y1 moveto $x1 $y2 lineto $x2 $y2 lineto $x2 $y1 li
+neto closepath\n";
print "clip\n";
$flag=1;
}
else {
print;
}
}
|