Mangle PPDs for DNP printers.

This commit is contained in:
Solomon Peachy 2015-07-16 07:19:17 -04:00
parent a9349a131b
commit 475f734e15
1 changed files with 48 additions and 0 deletions

48
dnp-mangleppd.pl Executable file
View File

@ -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(<FILE>) {
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(<FILE>) {
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;
}