Как из JS определить установленные в системе шрифты?

Хочу написать фразу, используя разный шрифт для каждой буквы. При этом брать установленные в систему, чтобы не грузить из сети.
Нужно из JS получить список шрифтов, установленных в клиентской системе.

Насколько я понял, все существующие определялки основаны на хаках: определить, есть ли конкретный шрифт в системе, потом взять список популярных шрифтов и пробежать по нему. Минус: если у пользователя есть редкий шрифт, мы об этом не узнаем. То же самое, если брать "безопасные шрифты".

Есть ли какое-то стандартное API для такого?
Если нет, буду благодарен за определялку с самым большим списком проверяемых шрифтов.
  • Вопрос задан
  • 766 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Bhudh
Могу предложить скрипт, проверяющий наличие определённых шрифтов у пользователя с определённой вероятностью.
Минусы следующие: сначала Вам потребуется самому набить базу по нужным Вам шрифтам, а также внести их в массив для проверки; проверка неоднозначная, поскольку даже если довести размер шрифта до астрономических величин (а не до 120pt, как в примере), то всё равно может случиться так, что у каких-то шрифтов ширина (и высота, кстати) текста будет совпадать с точностью до пикселя; если под "установленными" понимать расположенные в системной папке %FONTS%, их невозможно будет отличить от находящихся в кэше браузера, который достал их с какого-то шрифтового CDN; наконец, не исключаю и того, что на разных операционных системах разные движки рендеринга шрифтов и у разных систем размеры текста могут не совпадать.
В примере проверяется произвольный текст, можно использовать панграммы или проверять размеры отдельных букв/цифр/других глифов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы