В моем программном обеспечении, написанном для Windows с помощью Builder C++ 6, мне нужно создать статью в формате .pdf с некоторой информацией, которую пользователь редактирует и которая хранится в базе данных. Часть этой информации должна быть нарисована внутри спроектированного прямоугольника, поэтому мне нужно проверить, какая строка символов 55max будет соответствовать только одной строке внутри прямоугольника. Если нет, то мне нужно рассчитать, где я должен указать новую строку (\n).
Обычно текст помещается внутри прямоугольника, имеющего только 55 символов, но иногда какой-то необычный текст (например, "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW..."), имея одинаковое количество символов, в конечном итоге испортит все. Другими словами, я не могу использовать количество символов в строке, чтобы определить, когда дать новую строку, а скорее длину текста в пикселях (или других единицах измерения), поэтому я могу проверить, какая строка будет больше в .pdf, что это прямоугольный контейнер или нет.
Я пробовал такие функции, как GetCharABCWidths(), GetTextExtentPoint32(), но безуспешно (либо так называемые "логические единицы" менялись каждый раз, когда я использовал функцию для одной и той же строки/символа, и я не знал, как их использовать , или длина char была одинаковой, даже если они явно различались («1» по сравнению с «W») или что-то еще).
Итак, как я могу это сделать?