#!/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; }