my $page = 1;
+my $name = $ARGV[0] || 'page';
+
sub save_pbm;
while(<>) {
- die "no escape at beginning",dump($_) unless s/^\x1B//;
+ die "no escape at beginning",dump($_) unless s/^(\x00*)\x1B//;
+ warn "WARNING: ", length($1), " extra nulls before ESC\n" if $1;
chomp;
my @a = split(/;/,$_);
my $c = shift @a;
} elsif ( $c eq 'Pr' ) {
print "improve $a[0]\n";
# FIXME windows sends it, cups doesn't
+ } elsif ( $c eq 'Sv' ) {
+ print "even page on duplex printing\n";
} elsif ( $c eq 'Db' ) { # XXX not in cups
my ( $color, $two, $data ) = @a;
$two eq '2' or die '2';
- my $path = "page-Db-$color-$page.pbm";
+ my $path = "$name-Db-$color-$page.pbm";
$page++;
save_pbm $path, 648, 1015, $data; # FIXME 1016?
} elsif ( $c eq 'Dbc' ) { # XXX not in cups
}
$len == length $comp or warn "wrong length $len != ", length $comp;
- my ( $w, $h ) = ( 646, 1081 ); # from driver
+ my $w = 648 / 2;
+
+=for non-working
my $data;
+
my $i = 0;
while ( $i < length $comp ) {
my $len = ord(substr($comp,$i,4));
$i += $len;
}
+=cut
+
+ my $data = $comp;
- my $path = "page-Dbc-$color-$page.pbm";
+ my $path = "$name-Dbc-$color-$page.pbm";
$page++;
- #$h = int( length($data) * 8 / $w );
+ my $h = int( $len / 128 );
save_pbm $path, $w, $h, $data;
} else {