latin: code93 bar code svg
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 2 Apr 2017 20:42:37 +0000 (22:42 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 24 Apr 2017 18:44:10 +0000 (20:44 +0200)
writing-latn.inc.pl

index f178be95c879c56792cc7eb0b8badc57355cb3ec..ed8466df95ec16d11edd5a699ac06be251554be7 100644 (file)
@@ -1,4 +1,5 @@
 use utf8;
 use utf8;
+use List::Util qw( pairs );
 
 sub disptap {
        return map {
 
 sub disptap {
        return map {
@@ -242,6 +243,24 @@ my $U = 0;  # optional unicode alternatives
                201112 102112 202111 101212 201211 102211
        )
 ],
                201112 102112 202111 101212 201211 102211
        )
 ],
+'Code 93' => [
+       map {
+               sprintf
+               '<svg width="18" height="14" viewBox="-.5 0 9 7"><path d="M0,0 %s"/></svg>',
+               join ' ',
+               map {
+                       join('m1,-7', ('v7') x $_->[0]),  # line per bar width
+                       (map { sprintf 'm%d,-7', $_ + 1 } $_->[1] || ()),  # space forward
+               }
+               pairs split //
+       }
+       # bar and space widths (1-3)
+       qw(
+               21111 21121 21131 22111 22121 23111 11211 11221 11231
+               12211 13211 11112 11122 11132 12112 13112 21211 21221
+               21112 21122 22112 22211 11212 11222 12212 12311
+       )
+],
 'Code 128' => [
        map { $U ? tr/1-3-/❘❙❚ /r : sprintf
                '<svg width="20" height="14" viewBox="-.5 0 10 7"><path d="M0,0 %s"/></svg>',
 'Code 128' => [
        map { $U ? tr/1-3-/❘❙❚ /r : sprintf
                '<svg width="20" height="14" viewBox="-.5 0 10 7"><path d="M0,0 %s"/></svg>',