% !TeX program = LuaTeX % Copyright (C) 2019-2022 Roberto Giacomelli \newbox\mybox \nopagenumbers EAN encoder test. Test 1: one simple barcode EAN13 with default parameter: \directlua{ barracuda = require "barracuda" local barcode = barracuda:barcode() barcode:set_param{debug_bbox="qz"} local ean13, err = barcode:new_encoder("ean-13") assert(not err, err) local symbo, err = ean13:from_string("8006194056290") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule A\vrule\box\mybox \vrule A\vrule \medskip Test 2: one simple EAN8 barcode with default parameter: \directlua{ local barcode = barracuda:barcode() local ean8, err = barcode:new_encoder("ean-8") assert(not err, err) local symbo, err = ean8:from_string("96385074") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule A\vrule\box\mybox \vrule A\vrule \medskip Test 3: one simple EAN5 barcode with default parameter: \directlua{ local barcode = barracuda:barcode() local ean5, err = barcode:new_encoder("ean-5") assert(not err, err) local symbo, err = ean5:from_string("54495") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule A\vrule\box\mybox \vrule A\vrule \medskip Test 4: one simple EAN2 barcode with default parameter: \directlua{ local barcode = barracuda:barcode() local ean2, err = barcode:new_encoder("ean-2") assert(not err, err) local symbo, err = ean2:from_string("53") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule A\vrule\box\mybox \vrule A\vrule \medskip Test 5: EAN13 + EAN5 barcode with default parameter: \directlua{ local barcode = barracuda:barcode() local ean, err = barcode:new_encoder("ean-13+5"); assert(not err, err) local n = 123456789012 local c = assert(ean:checksum(n)) local symbo, err = ean:from_string(n..c.."12345") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule Test 5\vrule\box\mybox \vrule Test 5\vrule \medskip Test 6: EAN13 + EAN2 barcode with default parameter: \directlua{ local barcode = barracuda:barcode() local ean, err = barcode:new_encoder("ean-13+2"); assert(not err, err) local n = 123456789012 local c = ean:checksum(n) local s = n .. c local symbo, err = ean:from_string(s.."12") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule Test 6\vrule\box\mybox \vrule Test 6\vrule \medskip Test 7: EAN8 + EAN5 barcode with default parameter: \directlua{ local barcode = barracuda:barcode() local ean, err = barcode:new_encoder("ean-8+5"); assert(not err, err) local n = 1234567 local c = ean:checksum(n) local s = n .. c local symbo, err = ean:from_string(s.."12345") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule Test 7\vrule\box\mybox \vrule Test 7\vrule \medskip Test 8: EAN8 + EAN2 barcode with default parameter: \directlua{ local barcode = barracuda:barcode() local ean, err = barcode:new_encoder("ean-8+2"); assert(not err, err) local n = 7865431 local c = ean:checksum(n) local s = n .. c local symbo, err = ean:from_string(s.."88") assert(not err, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule Test 8\vrule\box\mybox \vrule Test 8\vrule \medskip Test 9: draw an EAN13 symbol with a user defined height. \smallskip We will test also the function barcode:enc\_by\_name(bc\_type, name), reusing encoders generated previuosly. The height parameter remain local to the object symbol. \smallskip \directlua{ local barcode = barracuda:barcode() local ean, err = barcode:enc_by_name("ean-13"); assert(not err, err) local n = 818571884348 local c = ean:checksum(n) local s = n .. c local symbo, err = ean:from_string(s); assert(not err, err) local ok, err = symbo:set_param("height", tex.sp "5mm"); assert(ok, err) local canvas = barracuda:new_canvas() symbo:draw(canvas) local s2, err = ean:from_uint(8001120972163); assert(not err, err) s2:draw(canvas, tex.sp "45mm", 0) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule Test 9\vrule\box\mybox \vrule Test 9\vrule \medskip Test 10: draw EAN13 symbols with a user defined height. \smallskip The parameter height is setting up in the encoder so it will be global. \smallskip \directlua{ local barcode = barracuda:barcode() local ean, err = barcode:enc_by_name("ean-13"); assert(not err, err) local ok, err = ean:set_param("height", tex.sp "5mm"); assert(ok, err) local n = 758458535897; local c = ean:checksum(n); local s = n .. c local s1, err = ean:from_string(s); assert(not err, err) local canvas = barracuda:new_canvas() s1:draw(canvas) local s2, err = ean:from_uint(8001120972163); assert(not err, err) s2:draw(canvas, tex.sp "40mm", 0) local s3, err = ean:from_uint(8000570000310); assert(not err, err) local ok, e = s3:set_param{height = tex.sp "10mm"}; assert(ok, e) s3:draw(canvas, tex.sp "90mm", 0) local drv = barracuda:get_driver() drv:ga_to_hbox(canvas, "mybox") } \vrule Test 10\vrule\box\mybox \vrule Test 10\vrule \medskip That's all folks! \bye