X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=evolis-printer.pl;h=11bd8b794e37fd358eaf2736ad013a7ee291f1d6;hb=59a692155bf314944671f6a4977db5caf1de2902;hp=33475004059b194100120979291f0f1c22792a2c;hpb=ddb694164fe54264a864a46aee14833e9120e5ff;p=Printer-EVOLIS.git diff --git a/evolis-printer.pl b/evolis-printer.pl index 3347500..11bd8b7 100755 --- a/evolis-printer.pl +++ b/evolis-printer.pl @@ -7,12 +7,6 @@ use strict; use Data::Dump qw(dump); -my $feeder = {qw( -F Feeder -M Manual -B Auto -)}; - local $/ = "\r"; my $page = 1; @@ -28,30 +22,24 @@ while(<>) { my @a = split(/;/,$_); my $c = shift @a; if ( $c eq 'Pmi' ) { - my $f = $a[0] || die 'missing feeder'; - print "$_ feeder: $feeder->{$f}\n"; - $a[1] eq 's' or die; + print "$_ mode insertion @a\n"; } elsif ( $c eq 'Pc' ) { - my $color = $a[0]; - $a[1] eq '=' or die; - my $temperature = $a[2]; - print "$_ temperature $color = $temperature\n"; + print "$_ contrast @a\n"; } elsif ( $c eq 'Pl' ) { - $a[1] eq '=' or die; - print "$_ brightnes? $a[0] = $a[2]\n"; + print "$_ luminosity @a\n"; } elsif ( $c eq 'Ps' ) { - $a[0] eq 'k' or die; - $a[1] eq '=' or die; - print "$_ qualityK $a[0] = $a[2]\n"; + print "$_ speed @a\n"; } elsif ( $c eq 'Pr' ) { - print "$_ improve (not in cups)\n"; + print "$_ ribbon $a[0]\n"; } elsif ( $c eq 'Ss' ) { - print "$_ encoding download",dump(@a),"\n"; - } elsif ( $c eq 'Sv' ) { - print "$_ even page on duplex printing\n"; + print "$_ sequence start\n"; + } elsif ( $c eq 'Se' ) { + print "$_ sequence end\n"; } elsif ( $c eq 'Sr' ) { - print "$_ odd page\n"; - } elsif ( $c eq 'Db' ) { # XXX not in cups + print "$_ sequence recto - card side\n"; + } elsif ( $c eq 'Sv' ) { + print "$_ sequence verso - back side\n"; + } elsif ( $c eq 'Db' ) { my ( $color, $two, $data ) = @a; print "$c;$color;$two;... bitmap\n"; $two eq '2' or die '2'; @@ -59,41 +47,34 @@ while(<>) { save_pbm $path, 648, 1015, $data; # FIXME 1016? } elsif ( $c eq 'Dbc' ) { # XXX not in cups my ( $color, $line, $len, $comp ) = @a; - print "$c;$color;$line;$len;... FIXME bitmap - compressed?\n"; + print "$c;$color;$line;$len;... download bitmap compressed\n"; while ( $len > length($comp) ) { warn "# slurp more ",length($comp), " < $len\n"; $comp .= <>; } $len == length $comp or warn "wrong length $len != ", length $comp; - my $w = 648 / 2; - -=for non-working - my $data; - my $i = 0; while ( $i < length $comp ) { - my $len = ord(substr($comp,$i,4)); - $i += 1; - warn "$i comp $len\n"; - $data .= substr($comp,$i,$len); - $data .= "\x00" x ( $w - $len ); - $i += $len; + my $first = substr($comp,$i++,1); + if ( $first eq "\x00" ) { + $data .= "\x00" x 81; + } elsif ( $first eq "\xFF" ) { + $data .= "\xFF" x 81; + } else { + my $len = ord $first; + $data .= substr($comp,$i,$len); + my $padding = 81 - $len; +warn "# $len $padding\n"; + $data .= "\x00" x $padding; + $i += $len; + } } -=cut - - my $data = $comp; - my $path = "$name-Dbc-$color-$page.pbm"; $page++; - my $h = int( $len / 128 ); - save_pbm $path, $w, $h, $data; + save_pbm $path, 648, 1015, $data; - } elsif ( $c eq 'Se' ) { - my $zero = <>; - print "$_ slurping zero bytes at end ",dump($zero),"\n"; - exit 0; } else { print "FIXME: $_\n"; }