X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=evolis-printer.pl;h=697f01db21d948ae3cc2c416ae1dc14e7d2bb0a8;hb=d66c4cd4160ccedea0d5ddcf04976f47c077b13c;hp=024c4669445dc11424e633be26ae658685628e4c;hpb=93866bb59a5915d60cc08bcd677732037462cc04;p=Printer-EVOLIS.git diff --git a/evolis-printer.pl b/evolis-printer.pl index 024c466..697f01d 100755 --- a/evolis-printer.pl +++ b/evolis-printer.pl @@ -20,7 +20,8 @@ my $page = 1; 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; @@ -36,6 +37,8 @@ while(<>) { } 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'; @@ -50,7 +53,7 @@ while(<>) { } $len == length $comp or warn "wrong length $len != ", length $comp; - my ( $w, $h ) = ( 646, 1081 ); # from driver + my $w = 648 / 2; =for non-working @@ -73,7 +76,7 @@ while(<>) { my $path = "page-Dbc-$color-$page.pbm"; $page++; - #$h = int( length($data) * 8 / $w ); + my $h = int( $len / 128 ); save_pbm $path, $w, $h, $data; } else {