Sysfont عبارة عن حزمة صغيرة تجعل من السهل تحديد الخطوط المثبتة. من المفيد إدراج الخطوط المثبتة أو لمطابقة الخطوط بناءً على استعلامات المستخدم. تشير عملية المطابقة أيضًا إلى بدائل خطية قابلة للحياة.
تستخدم الحزمة مجموعة من الخطوط القياسية التي تم تجميعها من مشروع قائمة OS-Font إلى جانب معالجة السلسلة ومقاييس التشابه لتسجيل مباريات الخطوط ، من أجل حساب استعلامات الإدخال الجزئية أو غير الدقيقة.
يمكن العثور على الوثائق الكاملة على: 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 )
}الإخراج:
اختبار أكثر شمولاً على أوبونتو:
لمزيد من المعلومات راجع:
المساهمات في شكل طلبات السحب ، أو المشكلات أو التعليقات العامة فقط ، هي موضع ترحيب دائمًا.
انظر المساهمة.
حقوق الطبع والنشر (C) 2019 Adrian-George Bostan.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر الترخيص لمزيد من التفاصيل.