המרת TTF ל-WOFF ו-WOFF2 באמצעות Java.

WOFF (Web Open Font Format) הוא בעצם TTF (True Type Font) אבל הוא מכיל דחיסה ספציפית לפורמט ומטא נתונים נוספים של XML. WOFF2 היא גרסה מורחבת של WOFF. הוא מציע יותר דחיסה בהשוואה ל-WOFF. הן WOFF והן WOFF2 משמשות בדפי אינטרנט. מצד שני, TTF (True Type Font) עובד מצוין בכל הפלטפורמות הדיגיטליות ונותן איכות מעולה על המסך ובמסמכים מודפסים. במקרים מסוימים, ייתכן שנצטרך להמיר גופנים מסוג אמיתי לגופני אינטרנט באופן תכנותי ביישומי Java. במאמר זה נלמד כיצד להמיר TTF ל-WOFF ו-WOFF2 באמצעות Java.

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

Java API להמרת TTF ל WOFF & WOFF2

להמרת TTF ל-WOFF, נשתמש ב-Aspose.Font for Java API. הוא מספק את המחלקה FontFileDefinition המייצגת את הגדרת קובץ הגופן. הוא גם מספק מחלקה FontDefinition המייצגת את הגדרת ערכת קבצי הגופן ומספקת פרטים בסיסיים של הגופן, כגון שם, סוג וכו’. שיטת Open() של מחלקה זו מחזירה את ה-FontDefinition עבור קובץ הגופן וסוג הגופן. אנו יכולים להמיר את הגופן הנטען לפורמטים אחרים באמצעות שיטת SaveToFormat() של המחלקה Font. יתרה מכך, ה-API מאפשר טעינה, שמירה וחילוץ מידע מ[סוגי גופנים נתמכים].

אנא הורד את ה-JAR של ה-API או הוסף את תצורת pom.xml הבאה ביישום Java מבוסס 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>21.12</version>
    <type>pom</type>
</dependency>

המרת TTF ל-WOFF באמצעות Java

אנו יכולים להמיר בקלות גופנים מסוג True Type (TTF) לפורמט Web Open Font (WOFF) על ידי ביצוע השלבים המפורטים להלן:

  • ראשית, טען את קובץ הגופן באמצעות המחלקה FileSystemStreamSource.
  • לאחר מכן, צור מופע של המחלקה FontFileDefinition עם אובייקט קובץ המקור כארגומנט.
  • לאחר מכן, אתחל את אובייקט המחלקה FontDefinition עם סוג Font כאובייקט TTF ו-FontFileDefinition.
  • לאחר מכן, פתח את הגופן באמצעות השיטה Font.Open() עם האובייקט FontDefinition כארגומנט.
  • לבסוף, קרא למתודה SaveToFormat() כדי לשמור אותה. זה לוקח את נתיב קובץ הפלט ואת FontSavingFormats ל-WOFF בתור ארגומנטים.

דגימת הקוד הבאה מדגימה כיצד להמיר TTF ל-WOFF באמצעות Java.

// דוגמה זו מדגימה כיצד להמיר TTF ל-WOFF.
// נתיב קובץ TTF
String fontPath = "C:\\Files\\Montserrat-Regular.ttf";

// טען את קובץ הגופן
FileSystemStreamSource source = new FileSystemStreamSource(fontPath);

// צור הגדרת קובץ גופן
FontFileDefinition fileDefinition = new FontFileDefinition(source);

// צור הגדרת גופן
FontDefinition fontDefinition = new FontDefinition(FontType.TTF, fileDefinition);

// פתח גופן
Font font = Font.open(fontDefinition);

// נתיב פלט WOFF
String outPath = "C:\\Files\\TtfToWoff_out1.woff";
FileOutputStream outStream = new FileOutputStream(outPath);

// המרת TTF ל-WOFF
font.saveToFormat(outStream, FontSavingFormats.WOFF);

המרת TTF ל-WOFF2 באמצעות Java

WOFF2 היא גרסה מעודכנת של WOFF. הוא מציע יותר דחיסה שבגללה הוא קטן יותר בגודל הקובץ ומספק ביצועים טובים יותר עבור דפדפנים מודרניים. אנו יכולים גם להמיר TTF ל-WOFF2 על ידי ביצוע השלבים שהוזכרו קודם לכן. עם זאת, אנחנו רק צריכים להגדיר את FontSavingFormats בתור WOFF2 בשלב האחרון.

דגימת הקוד הבאה מדגימה כיצד להמיר TTF ל-WOFF2 באמצעות Java.

// דוגמה זו מדגימה כיצד להמיר TTF ל-WOFF2.
// נתיב קובץ TTF
String fontPath = "C:\\Files\\Montserrat-Regular.ttf";

// טען את קובץ הגופן
FileSystemStreamSource source = new FileSystemStreamSource(fontPath);

// צור הגדרת קובץ גופן
FontFileDefinition fileDefinition = new FontFileDefinition(source);

// צור הגדרת גופן
FontDefinition fontDefinition = new FontDefinition(FontType.TTF, fileDefinition);

// פתח גופן
Font font = Font.open(fontDefinition);

// נתיב פלט WOFF
String outPath = "C:\\Files\\TtfToWoff_out1.woff2";
FileOutputStream outStream = new FileOutputStream(outPath);

// המרת TTF ל-WOFF
font.saveToFormat(outStream, FontSavingFormats.WOFF2);

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

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

סיכום

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

ראה גם