- } elsif ( $c eq 'Dbc' ) {
- my ( $color, $line, $len, $data ) = @a;
- while ( $len > length($data) ) {
- warn "# slurp more ",length($data), " < $len\n";
- $data .= <>;
+ } 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 = "$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;
+ 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;