, поэтому я использую FPDF в PHP для программного создания файла PDF из изображений и текста (не HTML).
Одна из самых больших проблем, с которыми я столкнулся, - это возможность обернуть текст вокруг изображения. Мой текущий алгоритм выглядит так:
- Получить текст в виде массива слов
- Добавляйте слова по одному в переменную 'current line' и вызывайте GetStringWidth () для нее, чтобы определить ширину текущей строки
- Как только я достигаю предопределенной максимальной ширины, я передаю текущую строку массиву строк и начинаю с новой «текущей строки».
Это позволяет мне получить массив строк, которые не должны нарушаться неправильно, однако я обнаружил, что, поскольку мой текст выровнен по правому краю, GetStringWidth () не может точно дать мне ширину строки, когда это было оправдано.
Я копался в методе FPDF MultiCell
, чтобы попытаться выяснить, как он правильно разбивает оправданный текст, но на самом деле не может ни сделать из этого ни головы, ни хвоста. Кажется, что он сводится к аналогичному алгоритму (и он записывает каждую строку, используя Cell
), но на самом деле кажется, что он никогда не вычисляет ширину, он записывает «код» PDF, такой как 0.375 Tw
.
Кто-нибудь знает, как рассчитать ширину выровненного текста с учетом строки и максимальной ширины?