summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/barracuda/lib-barcode/brcd-code39.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/scripts/barracuda/lib-barcode/brcd-code39.lua')
-rw-r--r--Master/texmf-dist/scripts/barracuda/lib-barcode/brcd-code39.lua36
1 files changed, 19 insertions, 17 deletions
diff --git a/Master/texmf-dist/scripts/barracuda/lib-barcode/brcd-code39.lua b/Master/texmf-dist/scripts/barracuda/lib-barcode/brcd-code39.lua
index a639619c639..6d7f2ccea7f 100644
--- a/Master/texmf-dist/scripts/barracuda/lib-barcode/brcd-code39.lua
+++ b/Master/texmf-dist/scripts/barracuda/lib-barcode/brcd-code39.lua
@@ -1,5 +1,5 @@
-- Code39 barcode encoder implementation
--- Copyright (C) 2019 Roberto Giacomelli
+-- Copyright (C) 2020 Roberto Giacomelli
--
-- All dimensions must be in scaled point (sp)
-- every fields that starts with an undercore sign are intended as private
@@ -30,6 +30,18 @@ Code39._symb_def = {-- symbol definition
Code39._star_def = 112121121 -- '*' start/stop character
-- parameters definition
+Code39._par_order = {
+ "module",
+ "ratio",
+ "quietzone",
+ "interspace",
+ "height",
+ "text_enabled",
+ "text_vpos",
+ "text_hpos",
+ "text_gap",
+ "text_star",
+}
Code39._par_def = {}
local pardef = Code39._par_def
@@ -45,7 +57,6 @@ pardef.module = {
default = 7.5 * 0.0254 * 186467, -- 7.5 mils (sp) unit misure,
unit = "sp", -- scaled point
isReserved = true,
- order = 1, -- the one first to be modified
fncheck = function (self, mod, _) --> boolean, err
if mod >= self.default then return true, nil end
return false, "[OutOfRange] too small value for module"
@@ -62,7 +73,6 @@ pardef.ratio = {
default = 2.0, -- the minimum
unit = "absolute-number",
isReserved = true,
- order = 2,
fncheck = function (self, ratio, tparcheck) --> boolean, err
local mils = 0.0254 * 186467
local mod = tparcheck.module
@@ -85,7 +95,6 @@ pardef.quietzone = {
default = 2.54 * 186467, -- 0.1 inches equal to 100*mils
unit = "sp", -- scaled point
isReserved = false,
- order = 3,
fncheck = function (self, qz, tparcheck) --> boolean, err
local mils = 0.0254 * 186467
local mod = tparcheck.module
@@ -109,7 +118,6 @@ pardef.interspace = { -- Intercharacter gap
default = 7.5 * 0.0254 * 186467, -- 1 module, for quality printer
unit = "sp", -- scaled point
isReserved = false,
- order = 4,
fncheck = function (self, igw, tparcheck) --> boolean, err
local mod = tparcheck.module
if igw >= mod then return true, nil end
@@ -128,7 +136,6 @@ pardef.height = {
default = 8 * 186467, -- 8 mm -- TODO: better assessment for symbol length
unit = "sp", -- scaled point
isReserved = false,
- order = 5,
fncheck = function (self, h, _) --> boolean, err
local mils = 0.0254 * 186467
if h >= 250*mils then return true, nil end
@@ -141,7 +148,6 @@ pardef.text_enabled = { -- boolean type
-- enable/disable a text label upon the barcode symbol
default = true,
isReserved = false,
- order = 6,
fncheck = function (self, flag, _) --> boolean, err
if type(flag) == "boolean" then
return true, nil
@@ -155,7 +161,6 @@ pardef.text_enabled = { -- boolean type
pardef.text_vpos = { -- enumeration
default = "bottom",
isReserved = false,
- order = 7,
policy_enum = {
top = true, -- place text at the top of symbol
bottom = true, -- place text under the symbol
@@ -175,7 +180,6 @@ pardef.text_vpos = { -- enumeration
pardef.text_hpos = { -- enumeration
default = "left",
isReserved = false,
- order = 8,
policy_enum = {
left = true,
center = true,
@@ -197,7 +201,6 @@ pardef.text_hpos = { -- enumeration
pardef.text_gap = {
default = 2.2 * 65536, -- 2.2 pt
isReserved = false,
- order = 9,
unit = "em", --> TODO: please put this under further analisys asap
fncheck = function(self, g, _) --> boolean, err
if type(g) == "number" then
@@ -216,8 +219,7 @@ pardef.text_gap = {
pardef.text_star = {
default = false,
isReserved = false,
- order = 10,
- fncheck = function(self, flag, _) --> boolean, err
+ fncheck = function(_self, flag, _) --> boolean, err
if type(flag) == "boolean" then
return true, nil
else
@@ -227,7 +229,7 @@ pardef.text_star = {
}
-- configuration function
-function Code39:config() --> ok, err
+function Code39:_config() --> ok, err
-- build Vbar object for the start/stop symbol
local mod, ratio = self.module, self.ratio
local n_star = self._star_def
@@ -239,7 +241,7 @@ end
-- overriding Barcode method
function Code39:_check_char(c) --> elem, err
if type(c) ~= "string" or #c ~= 1 then
- return nil, "[InternalErr] invalid char"
+ return nil, "[ArgErr] invalid char"
end
local symb_def = self._symb_def
local n = symb_def[c]
@@ -253,12 +255,12 @@ end
-- overriding Barcode method
function Code39:_check_digit(n) --> elem, err
if type(n) ~= "number" then
- return nil, "[InteranlErr] not a number"
+ return nil, "[ArgErr] not a number"
end
if n < 0 or n > 9 then
- return nil, "[InternalErr] not a digit"
+ return nil, "[ArgErr] not a digit"
end
- return tostring(n), nil
+ return string.char(n + 48), nil
end
function Code39:_finalize() --> ok, err