You are here

function barcode_s2o5_encode in Barcode 6.2

Same name and namespace in other branches
  1. 7.2 plugins/s2o5.inc \barcode_s2o5_encode()
1 call to barcode_s2o5_encode()
barcode_s2o5_barcode in plugins/s2o5.inc
@file Barcode plugin Standard 2 of 5: Used in airline ticket marking, photofinishing Industrial 2 of 5: Same as Standard 2 of 5

File

plugins/s2o5.inc, line 109
Barcode plugin Standard 2 of 5: Used in airline ticket marking, photofinishing Industrial 2 of 5: Same as Standard 2 of 5

Code

function barcode_s2o5_encode($barnumber, $settings) {
  $enc_table = array(
    "NNWWN",
    "WNNNW",
    "NWNNW",
    "WWNNN",
    "NNWNW",
    "WNWNN",
    "NWWNN",
    "NNNWW",
    "WNNWN",
    "NWNWN",
  );
  $guards = array(
    "11011010",
    "1101011",
  );
  $len = strlen($barnumber);
  $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);
  $widebar .= "0";
  for ($i = 0; $i < strlen($barnumber); $i++) {
    $num = (int) $barnumber[$i];
    $str = "";
    $str = str_replace("N", "10", $enc_table[$num]);
    $str = str_replace("W", $widebar, $str);
    $mfc_str .= $str;
  }
  return $guards[0] . $mfc_str . $guards[1];
}