From: Dobrica Pavlinusic Date: Sat, 14 Aug 2010 22:57:34 +0000 (+0200) Subject: Merge branch 'master' of t61p:/home/dpavlin/klin/Printer-EVOLIS/ X-Git-Tag: Printer-EVOLIS-0.01~54 X-Git-Url: http://git.rot13.org/?p=Printer-EVOLIS.git;a=commitdiff_plain;h=ddb694164fe54264a864a46aee14833e9120e5ff;hp=60c9628fce0c2f8279b905bb3e44eb84a5e06253 Merge branch 'master' of t61p:/home/dpavlin/klin/Printer-EVOLIS/ --- diff --git a/evolis-driver.pl b/evolis-driver.pl index a574837..6d81d44 100755 --- a/evolis-driver.pl +++ b/evolis-driver.pl @@ -21,7 +21,7 @@ print "\x1BPdt;DU\r"; print "\x1BMr;s\r"; print "\x1BPpws;1281732635\r"; -# SEQUENCE RECTO +# FIXME load card into printer print "\x1BSs\r"; print "\x1BSr\r"; @@ -30,10 +30,21 @@ my $command_size = 11682 print "\x1BDbc;k;2;11682;"; # bitmap data print "\r"; +# even page on two side-printing print "\x1BSv\r"; + print "\x1BPc;k;=;10\r"; print "\x1BDbc;k;2;31744;"; # bitmap data print "\r"; -print "\x1BSe\r"; +# print "\033Ste\015"; # keep card after encoding +print "\x1BSe\r"; # eject card +print "\x00" x 64; # FIXME some padding? + +sub encoding { +my $data = "1234567890"; # data for track +print "\033Ss\015", $data; +print "\033Smw\015"; # write? +} + diff --git a/evolis-printer.pl b/evolis-printer.pl index 697f01d..3347500 100755 --- a/evolis-printer.pl +++ b/evolis-printer.pl @@ -17,6 +17,8 @@ local $/ = "\r"; my $page = 1; +my $name = $ARGV[0] || 'page'; + sub save_pbm; while(<>) { @@ -27,26 +29,37 @@ while(<>) { my $c = shift @a; if ( $c eq 'Pmi' ) { my $f = $a[0] || die 'missing feeder'; - print "feeder $f | $feeder->{$f}\n"; + print "$_ feeder: $feeder->{$f}\n"; $a[1] eq 's' or die; } elsif ( $c eq 'Pc' ) { my $color = $a[0]; $a[1] eq '=' or die; my $temperature = $a[2]; - print "temperature $color = $temperature\n"; + print "$_ temperature $color = $temperature\n"; + } elsif ( $c eq 'Pl' ) { + $a[1] eq '=' or die; + print "$_ brightnes? $a[0] = $a[2]\n"; + } elsif ( $c eq 'Ps' ) { + $a[0] eq 'k' or die; + $a[1] eq '=' or die; + print "$_ qualityK $a[0] = $a[2]\n"; } elsif ( $c eq 'Pr' ) { - print "improve $a[0]\n"; - # FIXME windows sends it, cups doesn't + print "$_ improve (not in cups)\n"; + } elsif ( $c eq 'Ss' ) { + print "$_ encoding download",dump(@a),"\n"; } elsif ( $c eq 'Sv' ) { - print "even page on duplex printing\n"; + print "$_ even page on duplex printing\n"; + } elsif ( $c eq 'Sr' ) { + print "$_ odd page\n"; } elsif ( $c eq 'Db' ) { # XXX not in cups my ( $color, $two, $data ) = @a; + print "$c;$color;$two;... bitmap\n"; $two eq '2' or die '2'; - my $path = "page-Db-$color-$page.pbm"; - $page++; + my $path = "$name-Db-$color-$page.pbm"; $page++; 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"; while ( $len > length($comp) ) { warn "# slurp more ",length($comp), " < $len\n"; $comp .= <>; @@ -73,14 +86,16 @@ while(<>) { my $data = $comp; - my $path = "page-Dbc-$color-$page.pbm"; - $page++; - + my $path = "$name-Dbc-$color-$page.pbm"; $page++; my $h = int( $len / 128 ); save_pbm $path, $w, $h, $data; + } elsif ( $c eq 'Se' ) { + my $zero = <>; + print "$_ slurping zero bytes at end ",dump($zero),"\n"; + exit 0; } else { - warn "UNKNOWN: $c ", dump(@a); + print "FIXME: $_\n"; } } diff --git a/test-cups.sh b/test-cups.sh new file mode 100755 index 0000000..f24a616 --- /dev/null +++ b/test-cups.sh @@ -0,0 +1,6 @@ +#!/bin/sh -x + +ls test/*.pdf | xargs -i sh -c "./gs-cups-raster.sh < {} > {}.cups" +ls test/*.cups | xargs -i sh -c "./cups-rastertoevolis.sh {} > {}.evolis" +ls test/*.evolis | xargs -i ./evolis-printer.pl {} +ls -al test/