function barcode_i25_encode in Barcode 7.2
Same name and namespace in other branches
- 6.2 plugins/i25.inc \barcode_i25_encode()
1 call to barcode_i25_encode()
- barcode_i25_barcode in plugins/
i25.inc - @file Barcode plugin Interleaved 2 of 5: Same as Standard 2 of 5 Interleaved
File
- plugins/
i25.inc, line 110 - Barcode plugin Interleaved 2 of 5: Same as Standard 2 of 5 Interleaved
Code
function barcode_i25_encode($barnumber, $settings) {
$enc_table = array(
"NNWWN",
"WNNNW",
"NWNNW",
"WWNNN",
"NNWNW",
"WNWNN",
"NWWNN",
"NNNWW",
"WNNWN",
"NWNWN",
);
$guards = array(
"1010",
"1101",
);
$len = strlen($barnumber);
if ($len % 2 != 0) {
$barnumber = barcode_check_digit($barnumber, $len);
if ($len == strlen($barnumber) && substr($barnumber, -1) != '0') {
$barnumber .= '0';
}
}
$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 += 2) {
$tmp = $enc_table[(int) $barnumber[$i]];
$tmp1 = $enc_table[(int) $barnumber[$i + 1]];
for ($j = 0; $j < strlen($tmp); $j++) {
if ($tmp[$j] == 'N') {
$mfc_str .= '1';
}
else {
$mfc_str .= $widebar;
}
if ($tmp1[$j] == 'N') {
$mfc_str .= '0';
}
else {
$mfc_str .= $widespc;
}
}
}
return $guards[0] . $mfc_str . $guards[1];
}