diff --git a/dnp-mangleppd.pl b/dnp-mangleppd.pl new file mode 100755 index 0000000..74364e5 --- /dev/null +++ b/dnp-mangleppd.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl -w + +# cups-genppd.5.2 -p /tmp -Z dnp-ds40 dnp-ds620 dnp-ds80 dnp-dsrx1 +# for x in /tmp/*ppd ; do perl dnp-mangleppd.pl $x ; done + +my ($ppd, %sizes); + +$ppd = shift(@ARGV); + +open FILE, "<$ppd" || die ("can't open file"); + +while() { + if ($_ =~ "/\*PageSize (.*)\/(.*):.*/") { + $sizes{$1} = $2; + } +} + +close FILE; + +foreach my $key (keys(%sizes)) { + open FILE, "<$ppd" || die ("can't open file $ppd"); + + my $out = $ppd; + $out =~ s/.*stp-dnp-(.*)\.5\.2\.ppd/$1/; + $out =~ tr/a-z/A-Z/; + $out =~ s/DSRX1/RX1/; + + $sizes{"$key"} =~ s/(.*)\*(.*)/$1_x$2/; + $sizes{"$key"} =~ s/(.*)\+(.*)/$1_$2/; + + print "--> $key = $sizes{$key}\n"; + + open FILE2, ">$out-$sizes{$key}.ppd"; + + while() { + s/\*DefaultPageSize: .*/*DefaultPageSize: $key/; + s/\*DefaultPageRegion: .*/*DefaultPageRegion: $key/; + s/\*DefaultImageableArea: .*/*DefaultImageableArea: $key/; + s/\*DefaultPaperDimension: .*/*DefaultPaperDimension: $key/; + s/\*DefaultStpColorCorrection: .*/*DefaultStpColorCorrection: Uncorrected/; + s/\*DefaultStpColorPrecision: .*/*DefaultStpColorPrecision: Best/; + + print FILE2 "$_"; + } + + close FILE; + close FILE2; +}