Sysfont เป็นแพ็คเกจขนาดเล็กที่ทำให้ง่ายต่อการระบุแบบอักษรที่ติดตั้ง มันมีประโยชน์สำหรับการแสดงรายการแบบอักษรที่ติดตั้งหรือสำหรับการจับคู่แบบอักษรตามแบบสอบถามของผู้ใช้ กระบวนการจับคู่ยังแนะนำทางเลือกแบบอักษรที่ทำงานได้
แพ็คเกจใช้ชุดฟอนต์มาตรฐานที่รวบรวมจากโครงการ Os-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:
สำหรับข้อมูลเพิ่มเติมดู:
การมีส่วนร่วมในรูปแบบของการร้องขอการดึงปัญหาหรือเพียงแค่ข้อเสนอแนะทั่วไปยินดีต้อนรับเสมอ
ดูการสนับสนุน.
ลิขสิทธิ์ (C) 2019 Adrian-George Bostan
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT ดูใบอนุญาตสำหรับรายละเอียดเพิ่มเติม