У нас есть приложение для редактирования документов, включающее текстовые элементы; приложение работает как на Windows, так и на MacOS.
Однако в настоящее время мы сохраняем размеры шрифта в точках , что приводит к тому, что макет будет выглядеть по-разному, когда документ, созданный на одной платформе, открыт на другой.
Например, при создании на Mac и открытии в Windows текст становится намного больше, поэтому перенос слов происходит в разных местах абзаца.
Наивное применение коэффициента преобразования размера шрифта из-за различий ядра 72/96 DPI платформы не сокращает его (даже игнорируя масштабирование экрана и придерживаясь 100% на данный момент!)
Как ни странно, мелкие шрифты (12pt и ниже iirc) в Windows выглядят гораздо меньше в таком масштабе, что, вероятно, указывает на то, что линейный масштаб в любом случае не подходит.
Так как же размеры шрифта должны храниться в документе, чтобы вы могли последовательно отображать текст в Mac / Windows?
Обычно шрифт запрашивается в точках, а не в пикселях (разумеется, мы не в браузере), поэтому даже если мы храним высоту шрифта в пикселях, нам потребуется некоторая волшебная формула для преобразования этого значения обратно в значение точки. Также есть несколько метрик высоты шрифта ..
Тщательно запутался!