149 $lastColumn = key($cols);
150 $cols[$lastColumn][
'IS_DIGIT'] =
true;
154 $digitColumnFullWidth = [];
155 foreach ($cols as $columnId => $column)
160 $maxLengthWord = $cell[$columnId];
161 if ($cols[$columnId][
'IS_DIGIT'] !==
true)
166 if (
$i <= $countItems || $lastColumn === $columnId)
168 $max = max(
$max, $this->GetStringWidth($maxLengthWord));
175 if ($cols[$columnId][
'IS_DIGIT'] ===
true)
178 $digitColumns[] = $columnId;
179 $columnWith = $this->GetStringWidth($column[
'NAME']);
185 $requiredWidth = $docWidth - $digitWidth;
186 if ($noDigitWidth - $requiredWidth > $eps)
188 $colNameTitle = $this->GetStringWidth($cols[
'NAME'][
'NAME']);
189 if ($colNameTitle < $requiredWidth)
196 if ($noDigitWidth - $requiredWidth > $eps)
198 if (!in_array($lastColumn, $digitColumns))
200 $digitColumns[] = $lastColumn;
204 foreach ($digitColumns as $columnId)
206 if (!isset($cols[$columnId]))
212 if (
$i <= $countItems || $lastColumn === $columnId)
214 $max = max(
$max, $this->GetStringWidth($cell[$columnId]));
223 $requiredWidth = $docWidth - $digitWidth;
227 $additionalWidth = $requiredWidth /
count($digitColumns);
229 $firstColumnKey = key($cols);
234 if ($columnId === $firstColumnKey
235 && $cols[$columnId][
'IS_DIGIT']
242 if (isset($digitColumnFullWidth[$columnId]))
245 if (
$width > ($digitColumnFullWidth[$columnId] +
$margin * 2))
255 if ($cols[$columnId][
'IS_DIGIT'] ===
true)
265 $requiredWidth = $docWidth - $digitWidth;
266 if ($requiredWidth > 0)
275 elseif ($cols[$columnId][
'IS_DIGIT'] !==
true)
277 $ratio = $requiredWidth / $noDigitWidth;