בדוק את תמיכת הסמלים לטיניים עבור גופני TrueType או Type1 ב-C#

סמל תו לטיני הוא תו בצורת סימן, סימן או מילה. גופן מגדיר כיצד התווים/סמלים יוצגו בצורה דיגיטלית או בצורה הניתנת להדפסה באמצעות סט של מאפיינים. קובץ הגופן מכיל את העיצוב ומידע נוסף לגבי הגופן. במקרים מסוימים, ייתכן שנצטרך לבדוק אם גופן ספציפי כלשהו תומך בסמלים לטיניים או לא. במאמר זה, נלמד כיצד לבדוק את תמיכת הסמלים לטיניים בגופני TrueType או Type1 ב-C#.

הנושאים הבאים יכוסו במאמר זה:

  1. C# API לזיהוי סמלים לטיניים בגופנים
  2. זהה סמלים לטיניים בגופני TrueType באמצעות C#
  3. זהה סמלים לטיניים בגופנים מסוג Type1 באמצעות C#

C# API לזיהוי סמלים לטיניים בגופנים

לזיהוי תמיכה בסמלים לטיניים בגופנים, נשתמש ב-Aspose.Font for .NET API. הוא מאפשר טעינה, שמירה וחילוץ מידע מסוגי גופנים נתמכים. אנא הורד את ה-DLL של ה-API או התקן אותו באמצעות NuGet.

PM> Install-Package Aspose.Font

זיהוי סמלים לטיניים בגופני TrueType באמצעות C#

אנו יכולים לזהות סמלים לטיניים בגופני TrueType על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, טען את קובץ הגופן באמצעות המחלקה FontFileDefinition.
  2. לאחר מכן, אתחול אובייקט המחלקה FontDefinition עם FontType(TTF) ואובייקט FontFileDefinition כארגומנטים.
  3. לאחר מכן, קרא למתודה Font.Open() עם האובייקט FontDefinition כארגומנט ואתחל את אובייקט המחלקה TtfFont.
  4. לאחר מכן, בצע לולאה בין הקודים השונים ופענח אותם למזהי Glyph.
  5. לבסוף, בדוק את מזהי הגליפים לתמיכה בסמלים לטיניים.

דוגמת הקוד הבאה מראה כיצד לזהות אם גופן TrueType מסוים תומך בסמלים לטיניים או לא ב-C#.

// דוגמה זו מדגימה כיצד לזהות אם גופן TrueType מסוים תומך בסמלים לטיניים או לא.
// נתיב קובץ TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// טען את קובץ הגופן
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// אובייקט הגדרת גופן
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// פתח את הגופן
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// בדוק אם יש תמיכה בסמלים לטיניים
for (uint code = 65; code < 123; code++)
{
    GlyphId gid = font.Encoding.DecodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.NotDefId)
    {
        latinText = false;
    }
}

if (latinText)
{
    Console.WriteLine("Font {0} supports latin symbols.", font.FontName);
}
else
{
    Console.WriteLine("Latin symbols are not supported by font {0}.", font.FontName);
}

זיהוי סמלים לטיניים בגופנים מסוג Type1 באמצעות C#

אנו יכולים גם לזהות סמלים לטיניים בגופני Type1 על ידי ביצוע השלבים המפורטים להלן:

  1. ראשית, טען את קובץ הגופן באמצעות המחלקה FontFileDefinition.
  2. לאחר מכן, אתחול אובייקט המחלקה FontDefinition עם FontType(Type1) ואובייקט FontFileDefinition כארגומנטים.
  3. לאחר מכן, קרא למתודה Font.Open() עם האובייקט FontDefinition כארגומנט ואתחל את אובייקט המחלקה Type1Font.
  4. לאחר מכן, בצע לולאה בין הקודים השונים ופענח אותם למזהי Glyph.
  5. לבסוף, בדוק את מזהי הגליפים לתמיכה בסמלים לטיניים.

דוגמת הקוד הבאה מראה כיצד לזהות אם גופן Type1 מסוים תומך בסמלים לטיניים או לא ב-C#.

// דוגמה זו מדגימה כיצד לזהות אם גופן Type1 מסוים תומך בסמלים לטיניים או לא.
// נתיב קובץ גופן Type1
string fontPath = @"D:\Files\font\courier.pfb";

// טען את קובץ הגופן
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// אובייקט הגדרת גופן
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// פתח את הגופן
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// בדוק אם יש תמיכה בסמלים לטיניים
for (uint code = 65; code < 123; code++)
{
    GlyphId gid = font.Encoding.DecodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.NotDefId)
    {
        latinText = false;
    }
}

if (latinText)
{
    Console.WriteLine("Font {0} supports latin symbols.", font.FontName);
}
else
{
    Console.WriteLine("Latin symbols are not supported by font {0}.", font.FontName);
}

קבל רישיון חינם

אתה יכול לקבל רישיון זמני בחינם כדי לנסות את הספרייה ללא מגבלות הערכה.

סיכום

במאמר זה, למדנו כיצד לקבוע אם גופן TrueType או Type1 מסוים תומך בסמלים לטיניים או לא ב-C#. חוץ מזה, אתה יכול ללמוד עוד על Aspose.Font עבור .NET API באמצעות תיעוד. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו בפורום.

ראה גם