
גופנים ממלאים תפקיד חשוב בהצגת הטקסט במסמכים ובדפי האינטרנט. משפחות גופנים שונות זמינות המאפשרות לך להשתמש בתווים מפוארים על מנת להפוך את הטקסט שלך למושך. מאז Aspose עוסק באוטומציה של פורמט קבצים, השקנו API ייעודי למניפולציה של גופנים לעבודה עם פורמטים של קבצי גופנים. במאמר זה, תכיר את ה-API של Java Font שלנו ותלמד כיצד לעבוד עם גופני CFF, TrueType, OpenType ו-Type1 מתוך יישומי Java שלך.
- Java Font Manipulation API
- טען גופני CFF, TrueType ו-Type1 באמצעות Java
- חלץ מדדי גופנים מגופני TrueType או Type1 באמצעות Java
Java Font Manipulation API
Aspose.Font for Java הוא ממשק ה-API למניפולציה של גופנים המאפשר לך לטעון, לשמור ולתפעל גופנים פופולריים כולל CFF, TrueType, Type1, EOT, ו-OpenType. בנוסף, ה-API תומך באחזור מדדי גופן וכן בעיבוד הטקסט באמצעות סוגי הגופנים הנתמכים. אתה יכול להוריד את ה-API או להתקין אותו בתוך היישומים המבוססים על Maven באמצעות התצורות הבאות.
<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>20.10</version>
</dependency>
טען גופני CFF, TrueType ו-Type1 באמצעות Java
אתה יכול בקלות לטעון את הגופן מקובץ שנמצא באחסון שלך מתוך תוכנית Java שלך. לאחר שטענת את הגופן, תוכל לבצע פעולות נוספות לפי הצורך. להלן השלבים לטעינת גופן באמצעות Aspose.Font עבור Java.
- השתמש במחלקה FontDefinition כדי לטעון את הגופן על ידי ציון הסוג שלו כגון TrueType, Type1 וכו'.
- השתמש במחלקה CffFont, TtfFont, או Type1Font כדי לגשת לגופנים CFF, TrueType ו-Type1 בהתאמה מאובייקט FontDefinition.
טען גופני CFF באמצעות Java
כך תוכל לטעון גופן CFF מקובץ באמצעות Java.
// לדוגמאות מלאות וקובצי נתונים, נא עבור אל https://github.com/aspose-font/Aspose.Font-for-Java
String fileName = Utils.getDataDir() + "OpenSans-Regular.cff"; //Font file name with full path
FontDefinition fd = new FontDefinition(FontType.CFF, new FontFileDefinition("cff", new FileSystemStreamSource(fileName)));
CffFont ttfFont = (CffFont) Font.open(fd);
System.out.println("Font has been loaded");
טען גופני TrueType באמצעות Java
דגימת קוד ה-Java הבאה טוענת גופן TrueType.
// לדוגמאות מלאות וקובצי נתונים, נא עבור אל https://github.com/aspose-font/Aspose.Font-for-Java
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 font = (TtfFont) Font.open(fd);
טען גופנים מסוג Type1 באמצעות Java
דוגמת הקוד הבאה מראה כיצד לטעון גופן Type1 באמצעות Java.
// לדוגמאות מלאות וקובצי נתונים, נא עבור אל https://github.com/aspose-font/Aspose.Font-for-Java
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);
חלץ מדדי גופנים מגופני TrueType או Type1 באמצעות Java
קבצי הגופן מכילים גם את המידע של הגופן המשמש לציון מרווח בין שורות, מיקום כתוביות תחתיות וכתב עילי, יישור וכו’. Aspose.Font עבור Java מאפשר לך גם לחלץ את המידע המטרי של הגופן כולל Ascender, Descender, TypoAscender, TypoDescender , ו-UnitsPerEm. להלן השלבים לביצוע פעולה זו.
- השתמש במחלקה FontDefinition כדי לטעון גופן TrueType או Type1.
- גש לגופן באמצעות המחלקה TtfFont או Type1Font בהתאם לסוג הגופן.
- חלץ את פרטי המדדים של הגופן.
קבל מדדי גופנים מגופן TrueType באמצעות Java
// לדוגמאות מלאות וקובצי נתונים, נא עבור אל https://github.com/aspose-font/Aspose.Font-for-Java
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 font = (TtfFont) Font.open(fd);
String name = font.getFontName();
System.out.println("Font name: " + name);
System.out.println("Glyph count: " + font.getNumGlyphs());
String metrics = MessageFormat.format(
"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}",
font.getMetrics().getAscender(), font.getMetrics().getDescender(),
font.getMetrics().getTypoAscender(), font.getMetrics().getTypoDescender(), font.getMetrics().getUnitsPerEM());
System.out.println(metrics);
//קבל את טבלת הקידוד cmap unicode מגופן כאובייקט TtfCMapFormatBaseTable כדי לגשת למידע על גליף גופן עבור סמל 'A'.
//בדוק גם שלגופן יש אובייקט TtfGlyfTable (טבלה 'glyf') כדי לגשת לגליף.
TtfCMapFormatBaseTable cmapTable = null;
if (font.getTtfTables().getCMapTable() != null)
{
cmapTable = font.getTtfTables().getCMapTable().findUnicodeTable();
}
if (cmapTable != null && font.getTtfTables().getGlyfTable() != null)
{
System.out.println("Font cmap unicode table: PlatformID = " + cmapTable.getPlatformId() +
", PlatformSpecificID = " + cmapTable.getPlatformSpecificId());
//קוד לסמל 'A'
char unicode = (char)65;
//אינדקס גליף עבור 'A'
long glIndex = cmapTable.getGlyphIndex(unicode);
if (glIndex != 0)
{
//גליף עבור 'A'
Glyph glyph = font.getGlyphById(glIndex);
if (glyph != null)
{
//הדפס מדדי גליפים
System.out.println("Glyph metrics for 'A' symbol:");
String bbox = MessageFormat.format(
"Glyph BBox: Xmin = {0}, Xmax = {1}" + ", Ymin = {2}, Ymax = {3}",
glyph.getGlyphBBox().getXMin(), glyph.getGlyphBBox().getXMax(),
glyph.getGlyphBBox().getYMin(), glyph.getGlyphBBox().getYMax());
System.out.println(bbox);
System.out.println("Width:" + font.getMetrics().getGlyphWidth(new GlyphUInt32Id(glIndex)));
}
}
}
חלץ מדדי גופן מגופן Type1 באמצעות Java
// לדוגמאות מלאות וקובצי נתונים, נא עבור אל https://github.com/aspose-font/Aspose.Font-for-Java
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);
String name = font.getFontName();
System.out.println("Font name: " + name);
System.out.println("Glyph count: " + font.getNumGlyphs());
String metrics = MessageFormat.format(
"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}",
font.getMetrics().getAscender(), font.getMetrics().getDescender(),
font.getMetrics().getTypoAscender(), font.getMetrics().getTypoDescender(), font.getMetrics().getUnitsPerEM());
System.out.println(metrics);
סיכום
במאמר זה, למדת כיצד לעבוד עם גופני CFF, TrueType ו-Type1 באופן פרוגרמטי באמצעות Java. יתר על כן, ראית כיצד לגשת למידע על מדדי הגופן של גופן ספציפי. אתה יכול לחקור יותר על ממשק ה-API של מניפולציה של גופנים של Java באמצעות תיעוד ו-דוגמאות קוד מקור.