BarcodeGenerator::itf_encode

  1. Bitrix24 API (v. 23.675.0)
  2. ui
  3. BarcodeGenerator
  4. itf_encode
  • Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
  • Класс: BitrixUIBarcodeBarcodeGenerator
  • Вызов: BarcodeGenerator::itf_encode
private function itf_encode($data) {
	$data = preg_replace('/[^0-9]/', '', $data);
	if (strlen($data) % 2) $data = '0' . $data;
	$blocks = array();
	/* Quiet zone, start. */
	$blocks[] = array(
		'm' => array(array(0, 10, 0))
	);
	$blocks[] = array(
		'm' => array(
			array(1, 1, 1),
			array(0, 1, 1),
			array(1, 1, 1),
			array(0, 1, 1),
		)
	);
	/* Data. */
	for ($i = 0, $n = strlen($data); $i < $n; $i += 2) {
		$c1 = substr($data, $i, 1);
		$c2 = substr($data, $i+1, 1);
		$b1 = $this->itf_alphabet[$c1];
		$b2 = $this->itf_alphabet[$c2];
		$blocks[] = array(
			'm' => array(
				array(1, 1, $b1[0]),
				array(0, 1, $b2[0]),
				array(1, 1, $b1[1]),
				array(0, 1, $b2[1]),
				array(1, 1, $b1[2]),
				array(0, 1, $b2[2]),
				array(1, 1, $b1[3]),
				array(0, 1, $b2[3]),
				array(1, 1, $b1[4]),
				array(0, 1, $b2[4]),
			),
			'l' => array($c1 . $c2)
		);
	}
	/* End, quiet zone. */
	$blocks[] = array(
		'm' => array(
			array(1, 1, 2),
			array(0, 1, 1),
			array(1, 1, 1),
		)
	);
	$blocks[] = array(
		'm' => array(array(0, 10, 0))
	);
	/* Return code. */
	return array('g' => 'l', 'b' => $blocks);
}

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