• Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
  • Класс: BitrixUIBarcodeBarcodeGenerator
  • Вызов: BarcodeGenerator::code_39_encode
private function code_39_encode($data) {
	$data = strtoupper(preg_replace('/[^0-9A-Za-z%$/+ .-]/', '', $data));
	$blocks = array();
	/* Start */
	$blocks[] = array(
		'm' => array(
			array(1, 1, 1), array(0, 1, 2), array(1, 1, 1),
			array(0, 1, 1), array(1, 1, 2), array(0, 1, 1),
			array(1, 1, 2), array(0, 1, 1), array(1, 1, 1),
		),
		'l' => array('*')
	);
	/* Data */
	for ($i = 0, $n = strlen($data); $i < $n; $i++) {
		$blocks[] = array(
			'm' => array(array(0, 1, 3))
		);
		$char = substr($data, $i, 1);
		$block = $this->code_39_alphabet[$char];
		$blocks[] = array(
			'm' => array(
				array(1, 1, $block[0]),
				array(0, 1, $block[1]),
				array(1, 1, $block[2]),
				array(0, 1, $block[3]),
				array(1, 1, $block[4]),
				array(0, 1, $block[5]),
				array(1, 1, $block[6]),
				array(0, 1, $block[7]),
				array(1, 1, $block[8]),
			),
			'l' => array($char)
		);
	}
	$blocks[] = array(
		'm' => array(array(0, 1, 3))
	);
	/* End */
	$blocks[] = array(
		'm' => array(
			array(1, 1, 1), array(0, 1, 2), array(1, 1, 1),
			array(0, 1, 1), array(1, 1, 2), array(0, 1, 1),
			array(1, 1, 2), array(0, 1, 1), array(1, 1, 1),
		),
		'l' => array('*')
	);
	/* Return */
	return array('g' => 'l', 'b' => $blocks);
}