BarcodeGenerator::code_128_encode

  1. Bitrix24 API (v. 23.675.0)
  2. ui
  3. BarcodeGenerator
  4. code_128_encode
  • Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
  • Класс: BitrixUIBarcodeBarcodeGenerator
  • Вызов: BarcodeGenerator::code_128_encode
private function code_128_encode($data, $dstate, $fnc1) {
	$data = preg_replace('/[x80-xFF]/', '', $data);
	$label = preg_replace('/[x00-x1Fx7F]/', ' ', $data);
	$chars = $this->code_128_normalize($data, $dstate, $fnc1);
	$checksum = $chars[0] % 103;
	for ($i = 1, $n = count($chars); $i < $n; $i++) {
		$checksum += $i * $chars[$i];
		$checksum %= 103;
	}
	$chars[] = $checksum;
	$chars[] = 106;
	$modules = array();
	$modules[] = array(0, 10, 0);
	foreach ($chars as $char) {
		$block = $this->code_128_alphabet[$char];
		foreach ($block as $i => $module) {
			$modules[] = array(($i & 1) ^ 1, $module, 1);
		}
	}
	$modules[] = array(0, 10, 0);
	$blocks = array(array('m' => $modules, 'l' => array($label)));
	return array('g' => 'l', 'b' => $blocks);
}

Добавить комментарий