• Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
  • Класс: BitrixUIBarcodeBarcodeGenerator
  • Вызов: BarcodeGenerator::code_39_ascii_encode
private function code_39_ascii_encode($data) {
	$modules = array();
	/* Start */
	$modules[] = array(1, 1, 1);
	$modules[] = array(0, 1, 2);
	$modules[] = array(1, 1, 1);
	$modules[] = array(0, 1, 1);
	$modules[] = array(1, 1, 2);
	$modules[] = array(0, 1, 1);
	$modules[] = array(1, 1, 2);
	$modules[] = array(0, 1, 1);
	$modules[] = array(1, 1, 1);
	/* Data */
	$label = '';
	for ($i = 0, $n = strlen($data); $i < $n; $i++) {
		$char = substr($data, $i, 1);
		$ch = ord($char);
		if ($ch < 128) {
			if ($ch < 32 || $ch >= 127) {
				$label .= ' ';
			} else {
				$label .= $char;
			}
			$ch = $this->code_39_asciibet[$ch];
			for ($j = 0, $m = strlen($ch); $j < $m; $j++) {
				$c = substr($ch, $j, 1);
				$b = $this->code_39_alphabet[$c];
				$modules[] = array(0, 1, 3);
				$modules[] = array(1, 1, $b[0]);
				$modules[] = array(0, 1, $b[1]);
				$modules[] = array(1, 1, $b[2]);
				$modules[] = array(0, 1, $b[3]);
				$modules[] = array(1, 1, $b[4]);
				$modules[] = array(0, 1, $b[5]);
				$modules[] = array(1, 1, $b[6]);
				$modules[] = array(0, 1, $b[7]);
				$modules[] = array(1, 1, $b[8]);
			}
		}
	}
	$modules[] = array(0, 1, 3);
	/* End */
	$modules[] = array(1, 1, 1);
	$modules[] = array(0, 1, 2);
	$modules[] = array(1, 1, 1);
	$modules[] = array(0, 1, 1);
	$modules[] = array(1, 1, 2);
	$modules[] = array(0, 1, 1);
	$modules[] = array(1, 1, 2);
	$modules[] = array(0, 1, 1);
	$modules[] = array(1, 1, 1);
	/* Return */
	$blocks = array(array('m' => $modules, 'l' => array($label)));
	return array('g' => 'l', 'b' => $blocks);
}