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