Sysfont - это небольшой пакет, который позволяет легко идентифицировать установленные шрифты. Это полезно для листинга установленных шрифтов или для соответствующих шрифтов на основе пользовательских запросов. Процесс сопоставления также предлагает жизнеспособные альтернативы шрифта.
В пакете используется набор стандартных шрифтов, скомпилированных из проекта Los-Font-List, а также метрики обработки строк и сходства для подчетов шрифтов, чтобы учесть частичные или неточные входные запросы.
Полную документацию можно найти по адресу: https://pkg.go.dev/github.com/adrg/sysfont.
go get github.com/adrg/sysfont
finder := sysfont . NewFinder ( nil )
for _ , font := range finder . List () {
fmt . Println ( font . Family , font . Name , font . Filename )
}Процесс сопоставления имеет три шага. Идентификация наилучшего соответствующего установленного шрифта, основанного на указанном запросе, сначала пытается. Если близкого совпадения не найдено, искаляются альтернативные шрифты. Если альтернативный шрифт не найден, возвращается подходящий шрифт по умолчанию.
finder := sysfont . NewFinder ( nil )
terms := [] string {
"AmericanTypewriter" ,
"AmericanTypewriter-Bold" ,
"Andale" ,
"Arial" ,
"Arial Bold" ,
"Arial-BoldItalicMT" ,
"ArialMT" ,
"Baskerville" ,
"Candara" ,
"Corbel" ,
"Gill Sans" ,
"Hoefler Text Bold" ,
"Impact" ,
"Palatino" ,
"Symbol" ,
"Tahoma" ,
"Times" ,
"Times Bold" ,
"Times BoldItalic" ,
"Times Italic Bold" ,
"Times Roman" ,
"Verdana" ,
"Verdana-Italic" ,
"Webdings" ,
"ZapfDingbats" ,
}
for _ , term := range terms {
font := finder . Match ( term )
fmt . Printf ( "%-30s -> %-30s (%s) n " , term , font . Name , font . Filename )
}Выход:
Более полное тест, проведенный на Ubuntu:
Для получения дополнительной информации см.:
Взносы в виде запросов на притяжение, проблемы или просто общие отзывы всегда приветствуются.
См. Appling.md.
Авторские права (C) 2019 Адриан-Джордж Бостан.
Этот проект лицензирован по лицензии MIT. Смотрите лицензию для более подробной информации.