Я пытаюсь использовать PIL для предварительного вычисления размера, который будет принимать данная строка текста с заданным шрифтом и размером. PIL, казалось, был более или менее единственным рабочим решением.
Я попытался проверить результаты font.getsize()
, сравнив его с размером текста, введенного в Adobe Illustrator. Они очень редко совпадают.
Я выбрал следующие настройки в Adobe Illustrator для своего текста:
- единица измерения:
pt
- отслеживание:
0
- кернинг:
auto
- размер шрифта:
9
- текстовое содержание: последовательность из 25 "i" s
В python REPL я создал шрифты с помощью инструкции ImageFont.truetype('...', 9)
, которая затем называется font.getsize('...')
, с тем же текстом, что и в Adobe Illustrator
Номера были разными для всех шрифтов, которые я тестировал, кроме Arial:
| Font | Width in Illustrator | Result with Pillow |
|---------------------|----------------------|--------------------|
| Arial | 49.987 | 50 |
| AppleGothic | 35.774 | 26 |
| Times New Roman | 62.513 | 75 |
| Museo Sans 700 | 60.074 | 50 |
| StixIntegralsD Bold | 60.074 | 50 |
Вот версии соответствующего программного обеспечения, которое я использовал:
- ОС: macOS 10.13.6
- Python: 3.6.5
- Подушка: 5.3.0