X-Git-Url: http://git.rot13.org/?p=Printer-Zebra.git;a=blobdiff_plain;f=svg-render.pl;h=d86488d718d759d6754ef3b1aeeff36a121d0cfe;hp=6624066f1a2f907a6b925b5dc590ed65043a2287;hb=b3eca0900a7d24282a709acbeab5c53ba66e0e97;hpb=e699b31cd967ccc99fb88d987250eb44a85cbb4f diff --git a/svg-render.pl b/svg-render.pl index 6624066..d86488d 100755 --- a/svg-render.pl +++ b/svg-render.pl @@ -1,16 +1,30 @@ #!/usr/bin/perl use warnings; use strict; +use autodie; -# 5166 px = 1000 dpi +# sudo apt-get install librsvg2-bin netpbm -my $w = 832; +my $size = $ENV{SIZE} || '105x40'; +my $width = $ENV{WIDTH} || 832; -my $density = $w / 5166 * 1000; -warn "# density = $density\n"; +my $args = join(' ', @ARGV); +die "usage: $0 1301272944 callnumber > label.pbm\n" unless $args; -my $from = shift @ARGV || die "usage: $0 template.svg\n"; +my ( $barcode, $call1, $call2, $call3, $call4 ) = split(/\s+/, $args, 5); -system "convert -density $density $from $from.pbm"; +open(my $from, '<', "templates/$size.svg"); +open(my $to, '|-', "rsvg-convert --width=$width --format=png --background-color=white | pngtopnm | pnmdepth 2"); +while(<$from>) { + no warnings 'uninitialized'; + s/1301272944/$barcode/gs && warn "# barcode $barcode\n"; + s/##call1##/$call1/gs && warn "# 1: $call1\n"; + s/##call2##/$call2/gs && warn "# 2: $call2\n"; + s/##call3##/$call3/gs && warn "# 3: $call3\n"; + s/##call4##/$call4/gs && warn "# 4: $call4\n"; + print $to $_; +} +close($from); +close($to);