implement ZPL run-length compression and turn it on by default
[Printer-Zebra.git] / svg-render.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use autodie;
5
6 # 5166 px = 1000 dpi
7
8 my $size = $ENV{SIZE} || '105x40';
9
10 my $w = 832;
11
12 my $density = $w / 5166 * 1000;
13 warn "# density = $density\n";
14
15
16 my $barcode = shift @ARGV || die "usage: $0 1301272944 callnumber\n";
17
18 my $call1 = shift @ARGV;
19 my $call2 = shift @ARGV;
20 my $call3 = shift @ARGV;
21 my $call4 = join(' ', @ARGV);
22
23 my $pbm = "/tmp/$barcode.pbm";
24
25 open(my $from, '<',  "templates/$size.svg");
26 open(my $to,   '|-', "convert -units PixelsPerInch -density $density - $pbm");
27 while(<$from>) {
28         s/1301272944/$barcode/gs && warn "# barcode $barcode\n";
29         s/##call1##/$call1/gs    && warn "# 1: $call1\n";
30         s/##call2##/$call2/gs    && warn "# 2: $call2\n";
31         s/##call3##/$call3/gs    && warn "# 3: $call3\n";
32         s/##call4##/$call4/gs    && warn "# 4: $call4\n";
33
34         print $to $_;
35 }
36 close($from);
37 close($to);
38
39 warn "$pbm ", -s $pbm, " bytes\n";
40
41