fpdf многоэлементная проблема

как мы отображаемся fpdf многоэлементный в равных высотах, имеющих другую сумму содержания

14
задан gireesh 17 November 2009 в 11:14
поделиться

1 ответ

Большой вопрос.

Я решил эту проблему, просмотрев каждую ячейку данных в вашей строке, которая будет многократной, и определил наибольшую высоту всех этих ячеек. Это происходит до того, как вы создадите свою первую ячейку в строке, и она станет новой высотой вашей строки, когда вы фактически перейдете на ее рендеринг.

Вот несколько шагов, чтобы добиться этого только для одной ячейки, но вам нужно будет сделать это для каждой мультиячейки:

Это предполагает $ row данных с атрибутом String с именем описание .

  1. Сначала получите содержимое ячейки и установите ширину столбца для ячейки.

     $ description = $ row ['описание']; // MultiCell (многострочный) контент.
     
     $ column_width = 50; 
     
  2. Получите ширину строки описания с помощью функции GetStringWidth () в FPDF :

     $ total_string_width = $ pdf-> GetStringWidth ($ description); 
     
  3. Определите количество строк в этой ячейке:

     $ number_of_lines = $ total_string_width / ($ column_width - 1); 
     
     $ number_of_lines = ceil ($ number_of_lines); // Округлить в большую сторону. 
     

    Я вычел 1 из $ column_width как своего рода заполнение ячейки. Это дало лучшие результаты.

  4. Определите высоту полученной многострочной ячейки:

     $ line_height = 5; // Какой бы ни была высота вашей строки. 
     
     $ height_of_cell = $ number_of_lines * $ line_height; 
     
     $ height_of_cell = ceil ($ height_of_cell); // Округлите его в большую сторону. 
     
  5. Повторите эту методику для любых других ячеек MultiCell, установив для $ row_height наибольшее значение $ height_of_cell .

  6. Наконец, визуализируйте строку, используя $ row_height в качестве высоты строки.

  7. Танец.

16
ответ дан 1 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: