แปลง 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 เราจะใช้ API Aspose.Font for Java มีคลาส 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 Fonts (TTF) เป็น Web Open Font Format (WOFF) ได้โดยทำตามขั้นตอนด้านล่าง:

  • ประการแรก โหลดไฟล์ฟอนต์โดยใช้คลาส FileSystemStreamSource
  • จากนั้น สร้างอินสแตนซ์ของคลาส FontFileDefinition โดยมีออบเจกต์ไฟล์ต้นฉบับเป็นอาร์กิวเมนต์
  • จากนั้น เริ่มต้นวัตถุคลาส FontDefinition ด้วยประเภทแบบอักษรเป็นวัตถุ 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 Fonts เป็น Web Open Fonts ใน Java เราได้เห็นวิธีการบันทึก TTF เป็น WOFF2 โดยทางโปรแกรม นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Font for Java API โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย