Размещение текста по столбцам

garlian

Новичок
Размещение текста по столбцам

Как правильно подойти к решению следующей задачи:
Есть текст произвольного размера. Задаётся количество столбцов в таблице, их высота и ширина. Мне нужно разделить текст так, что бы он разместился по этим столбцам по ровну. Высота и ширина у всех столбцов одинакова.
Пока я пришёл к решению неточному, я приблизительно устанавливаю кол-во символов в столбце и делю текст по этому количеству. Но это очень неточно так, как слова разной длины, перенос их происходит по разному и также некоторые слова или буквы могут быть заглавные.

Есть ли какое более точное решение?
 

DiMA

php.spb.ru
Команда форума
если нужно идеально - то делай средствами js, на ходу считывая размер ячеек и подгоняя таблицу

а можно просто врубить css overflow по высоте самой маленькой ячейки
 

garlian

Новичок
Проблема ещё в том, что формируется ХТМЛ таблица и генерируется пдф документ. Так тут Яваскрипт не поможет.
 

DiMA

php.spb.ru
Команда форума
Включай голову. Пусть JS тихо подбирает правильные параметры и отправляет ответ обратно в твой пхп. Из минусов - будет некая задержка на прогон алгоритма в браузере.
 

DiMA

php.spb.ru
Команда форума
Реализуй подгон ширины на JS. Потом поймешь. Аналогично можно на GD делать.
 

Alexandre

PHPПенсионер
я помню, когда работал в дизайн-студии у нас для такой задачки была вычислена некая импирическая формула типа w=a*x+b для каждого размера шрифра (даже не помню какого, но не monospace) где x- размер шрифта a,b подбираются опытным путем
далее вычисляли кол-во символов для заданной ширины и соответственно циклом вставляли слова на определенное кол-во символов, если размер строки получался больше расчитанной - то осуществляли перенос на следующую.
все просто, красиво, но нудно.
 

Alexandre

PHPПенсионер
Поподробнее бы узнать про ваши эти вычисления
это было 5 лет назад и больше я этим нигде не пользовался...

вычисляется приблизительно так:
- берется произвольный текст произвольной длинны
- считается число символов на отрезке min - max пикселов c шагом 10 пикселов
данные запоминаются
- далее продолжаем для другого размера шрифта
после этого все впизиваем в пает матстатистики и она вычисляет волшебшую формулу для данного шрифта.
 

Chupach1979

Новичок
Если Вы работаете просто с текстом, то просто вычисляйте количество символов в самом большом блоке из 3х, подгоняете длинну всех трех ячеек под длинну самого большого куска текса
 
Сверху