как мы отображаемся fpdf многоэлементный в равных высотах, имеющих другую сумму содержания
Большой вопрос.
Я решил эту проблему, просмотрев каждую ячейку данных в вашей строке, которая будет многократной, и определил наибольшую высоту всех этих ячеек. Это происходит до того, как вы создадите свою первую ячейку в строке, и она станет новой высотой вашей строки, когда вы фактически перейдете на ее рендеринг.
Вот несколько шагов, чтобы добиться этого только для одной ячейки, но вам нужно будет сделать это для каждой мультиячейки:
Это предполагает $ row
данных с атрибутом String с именем описание
.
Сначала получите содержимое ячейки и установите ширину столбца для ячейки.
$ description = $ row ['описание']; // MultiCell (многострочный) контент.
$ column_width = 50;
Получите ширину строки описания
с помощью функции GetStringWidth ()
в FPDF
:
$ total_string_width = $ pdf-> GetStringWidth ($ description);
Определите количество строк в этой ячейке:
$ number_of_lines = $ total_string_width / ($ column_width - 1);
$ number_of_lines = ceil ($ number_of_lines); // Округлить в большую сторону.
Я вычел 1 из $ column_width
как своего рода заполнение ячейки. Это дало лучшие результаты.
Определите высоту полученной многострочной ячейки:
$ line_height = 5; // Какой бы ни была высота вашей строки.
$ height_of_cell = $ number_of_lines * $ line_height;
$ height_of_cell = ceil ($ height_of_cell); // Округлите его в большую сторону.
Повторите эту методику для любых других ячеек MultiCell, установив для $ row_height
наибольшее значение $ height_of_cell
.
Наконец, визуализируйте строку, используя $ row_height
в качестве высоты строки.