function barcode_codabar_encode in Barcode 6.2
Same name and namespace in other branches
- 7.2 plugins/codabar.inc \barcode_codabar_encode()
1 call to barcode_codabar_encode()
- barcode_codabar_barcode in plugins/
codabar.inc - @file Barcode plugin Codabar (aka Ames Code/USD-4/NW-7/2 of 7 Code): Used in libraries and blood banks
File
- plugins/
codabar.inc, line 107 - Barcode plugin Codabar (aka Ames Code/USD-4/NW-7/2 of 7 Code): Used in libraries and blood banks
Code
function barcode_codabar_encode($barnumber, $settings) {
$enc_table = array(
"0000011",
"0000110",
"0001001",
"1100000",
"0010010",
"1000010",
"0100001",
"0100100",
"0110000",
"1001000",
);
$chr_table = array(
"-" => "0001100",
"\$" => "0011000",
":" => "1000101",
"/" => "1010001",
"." => "1010100",
"+" => "0011111",
"A" => "0011010",
"B" => "0001011",
"C" => "0101001",
"D" => "0001110",
);
$mfc_str = "";
$widebar = str_pad("", $settings->n2w, "1", STR_PAD_LEFT);
$widespc = str_pad("", $settings->n2w, "0", STR_PAD_LEFT);
for ($i = 0; $i < strlen($barnumber); $i++) {
if (preg_match("/[0-9]+/", $barnumber[$i])) {
$tmp = $enc_table[(int) $barnumber[$i]];
}
else {
$tmp = $chr_table[strtoupper(trim($barnumber[$i]))];
}
$bar = TRUE;
for ($j = 0; $j < strlen($tmp); $j++) {
if ($tmp[$j] == '0' && $bar) {
$mfc_str .= '1';
}
elseif ($tmp[$j] == '0' && !$bar) {
$mfc_str .= '0';
}
elseif ($tmp[$j] == '1' && $bar) {
$mfc_str .= $widebar;
}
elseif ($tmp[$j] == '1' && !$bar) {
$mfc_str .= $widespc;
}
$bar = !$bar;
}
$mfc_str .= '0';
}
return $mfc_str;
}