O Sysfont é um pequeno pacote que facilita a identificação de fontes instaladas. É útil para listar fontes instaladas ou para corresponder a fontes com base nas consultas do usuário. O processo de correspondência também sugere alternativas viáveis de fonte.
O pacote usa uma coleção de fontes padrão compiladas a partir do projeto OS-Font-List, juntamente com métricas de processamento de string e similaridade para marcar correspondências de fontes, a fim de explicar as consultas de entrada parciais ou inexatas.
A documentação completa pode ser encontrada em: 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 )
}O processo de correspondência tem três etapas. A identificação da melhor fonte instalada correspondente, com base na consulta especificada, é tentada primeiro. Se nenhuma correspondência é encontrada, as fontes alternativas serão pesquisadas. Se nenhuma fonte alternativa for encontrada, uma fonte padrão adequada será retornada.
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 )
}Saída:
Um teste mais abrangente feito no Ubuntu:
Para mais informações, consulte:
As contribuições na forma de solicitações de tração, problemas ou apenas feedback geral são sempre bem -vindas.
Consulte Contribuindo.md.
Copyright (c) 2019 Adrian-George Bostan.
Este projeto está licenciado sob a licença do MIT. Consulte a licença para obter mais detalhes.