גופנים הם קבוצה של תווים הניתנים להדפסה או לתצוגה עם סגנונות שונים, משקלים וכו’. הם משמשים כדי להוסיף מראה ותחושה שונים למסמכים או לדפי אינטרנט בהתבסס על דרישות שונות. קובצי הפונט מכילים את העיצוב ומידע נוסף בנוגע לגופן. במאמר זה, נשתמש בקבצי הגופן כדי לזהות אם גופן תומך בסמלים לטיניים או לא באופן תכנותי עם Java.

Java API לזיהוי סמלים לטיניים בגופני TrueType ו-Type1

Aspose.Font for Java היא ספרייה לעבודה עם גופנים כגון TrueType, CFF, Type1 וכו’. ה-API תומך בטעינה, שמירה ו חילוץ מידע לגבי גופנים. ה-API גם מאפשר לך לזהות את התמיכה בסמלים לטיניים בגופנים. אתה יכול להוריד את ה-API באמצעות Maven או להוריד את ה-JAR מהקטע הורדות.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-font</artifactId>
    <version>21.4</version>
</dependency>

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

להלן השלבים לזיהוי אם גופן TrueType מסוים תומך בסמלים לטיניים או לא.

  • צור מופע של המחלקה FontDefinition באמצעות קובץ הגופן.
  • צור מופע של המחלקה TtfFont באמצעות האובייקט של FontDefinition שנוצר בשלב הקודם.
  • עברו בלולאה בין הקודים השונים ופענחו אותם למזהי גליפים.
  • בדוק את מזהי הגליפים לתמיכה בסמלים לטיניים.

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

// נתיב קובץ גופן
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// טען את קובץ הגופן
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// בדוק אם יש תמיכה בסמלים לטיניים
for (int code = 65; code < 123; code++)
{
    GlyphId gid = ttfFont.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", ttfFont.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", ttfFont.getFontName()));
}

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

התהליך לזיהוי תמיכה בסמלים לטיניים בגופני Type1 דומה לגופני TrueType. ההבדל היחיד הוא שנשתמש במחלקה Type1Font כדי לגשת למידע הגופן. להלן השלבים לזיהוי התמיכה בסמלים לטיניים בגופנים מסוג Type1.

  • צור מופע של המחלקה FontDefinition באמצעות קובץ הגופן.
  • צור מופע של המחלקה Type1Font באמצעות האובייקט של FontDefinition שנוצר בשלב הקודם.
  • עברו בלולאה בין הקודים השונים ופענחו אותם למזהי גליפים.
  • בדוק את מזהי הגליפים לתמיכה בסמלים לטיניים.

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

// נתיב קובץ גופן
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// טען את קובץ הגופן
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

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

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", font.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", font.getFontName()));
}

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

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

סיכום

במאמר זה, למדת כיצד לזהות תמיכה בסמלים לטיניים בגופנים באמצעות Java. דוגמאות הקוד המשותפות מאפשרות לך לזהות אם גופן מסוים תומך בסמלים לטיניים או לא. Aspose.Font עבור Java מספק תכונות נוספות רבות לעבודה עם גופנים שתוכל לחקור בפירוט על ידי ביקור בתיעוד הרשמי. בכל שאלה, אנא אל תהסס לפנות אלינו בפורום התמיכה החינמי שלנו.

ראה גם