#!/usr/bin/perl -w

use strict;

sub round($;$) {
    my $val = shift;
    my $steps = shift // 1;

    if ($steps == 0) { return $val; }
    my $round = $steps * int( $val / $steps + 0.5 );
}

sub run($) {
    my $file = shift;

    if ($file !~ m/\.ps$/) {
	printf(STDERR "$file: not a postscript file\n");
	return;
    }
    my $outp = $file;
    $outp =~ s/\.ps$/\.pdf/;
    my $bb = `fgrep -a -m1 %%DocumentMedia: $file`;

    my @fld = split(/ +/, $bb);
    my $x = round($fld[2] * 10);
    my $y = round($fld[3] * 10);
    #print "$fld[2] $x $fld[3] $y\n";

    my $cmd= "gs -o $outp -sDEVICE=pdfwrite -g${x}x$y -dPDFFitPage $file";

    print `$cmd`;
}
sub main() {
    for my $file (@ARGV) {
	run($file);
    }
}

main();
