- Модуль: ui
- Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
- Класс: BitrixUIBarcodeBarcodeGenerator
- Вызов: BarcodeGenerator::encode_and_calculate_size
private function encode_and_calculate_size($symbology, $data, $options) {
$code = $this->dispatch_encode($symbology, $data, $options);
$widths = array(
(isset($options['wq']) ? (int)$options['wq'] : 1),
(isset($options['wm']) ? (int)$options['wm'] : 1),
(isset($options['ww']) ? (int)$options['ww'] : 3),
(isset($options['wn']) ? (int)$options['wn'] : 1),
(isset($options['w4']) ? (int)$options['w4'] : 1),
(isset($options['w5']) ? (int)$options['w5'] : 1),
(isset($options['w6']) ? (int)$options['w6'] : 1),
(isset($options['w7']) ? (int)$options['w7'] : 1),
(isset($options['w8']) ? (int)$options['w8'] : 1),
(isset($options['w9']) ? (int)$options['w9'] : 1),
);
$size = $this->dispatch_calculate_size($code, $widths, $options);
$dscale = ($code && isset($code['g']) && $code['g'] == 'm') ? 4 : 1;
$scale = (isset($options['sf']) ? (float)$options['sf'] : $dscale);
$scalex = (isset($options['sx']) ? (float)$options['sx'] : $scale);
$scaley = (isset($options['sy']) ? (float)$options['sy'] : $scale);
$dpadding = ($code && isset($code['g']) && $code['g'] == 'm') ? 0 : 10;
$padding = (isset($options['p']) ? (int)$options['p'] : $dpadding);
$vert = (isset($options['pv']) ? (int)$options['pv'] : $padding);
$horiz = (isset($options['ph']) ? (int)$options['ph'] : $padding);
$top = (isset($options['pt']) ? (int)$options['pt'] : $vert);
$left = (isset($options['pl']) ? (int)$options['pl'] : $horiz);
$right = (isset($options['pr']) ? (int)$options['pr'] : $horiz);
$bottom = (isset($options['pb']) ? (int)$options['pb'] : $vert);
$dwidth = ceil($size[0] * $scalex) + $left + $right;
$dheight = ceil($size[1] * $scaley) + $top + $bottom;
$iwidth = (isset($options['w']) ? (int)$options['w'] : $dwidth);
$iheight = (isset($options['h']) ? (int)$options['h'] : $dheight);
$swidth = $iwidth - $left - $right;
$sheight = $iheight - $top - $bottom;
return array(
$code, $widths, $iwidth, $iheight,
$left, $top, $swidth, $sheight
);
}