Chuyển đổi TTF sang WOFF và WOFF2 bằng Java.

WOFF (Web Open Font Format) về cơ bản là TTF (True Type Font) nhưng nó chứa chức năng nén định dạng cụ thể và siêu dữ liệu XML bổ sung. WOFF2 là một phiên bản mở rộng của WOFF. Nó cung cấp nhiều nén hơn so với WOFF. Cả WOFF và WOFF2 đều được sử dụng trên các trang web. Mặt khác, TTF (True Type Font) hoạt động tốt trên tất cả các nền tảng kỹ thuật số và cho chất lượng tuyệt vời trên màn hình và trong các tài liệu in. Trong một số trường hợp nhất định, chúng tôi có thể cần chuyển đổi phông chữ true-type thành phông chữ Web theo chương trình trong các ứng dụng Java. Trong bài này, chúng ta sẽ học cách chuyển đổi TTF sang WOFF và WOFF2 bằng Java.

Các chủ đề sau sẽ được đề cập trong bài viết này:

Java API để chuyển đổi TTF sang WOFF & WOFF2

Để chuyển đổi TTF thành WOFF, chúng tôi sẽ sử dụng API Aspose.Font cho Java. Nó cung cấp lớp FontFileDefinition đại diện cho định nghĩa tệp Font. Nó cũng cung cấp lớp FontDefinition đại diện cho định nghĩa tập hợp phông chữ và cung cấp các chi tiết cơ bản của Phông chữ, chẳng hạn như tên, kiểu, v.v. Phương thức Open() của lớp này trả về FontDefinition cho tệp phông chữ và kiểu phông chữ. Chúng ta có thể chuyển đổi phông chữ đã tải sang các định dạng khác bằng phương thức SaveToFormat() của lớp Phông chữ. Hơn nữa, API cho phép tải, lưu và trích xuất thông tin từ các loại phông chữ được hỗ trợ.

Vui lòng tải xuống JAR của API hoặc thêm cấu hình pom.xml sau vào ứng dụng Java dựa trên 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>

Chuyển đổi TTF sang WOFF bằng Java

Chúng tôi có thể dễ dàng chuyển đổi Phông chữ True Type (TTF) sang Định dạng Phông chữ Mở trên Web (WOFF) bằng cách làm theo các bước dưới đây:

  • Đầu tiên, tải tệp phông chữ bằng lớp FileSystemStreamSource.
  • Tiếp theo, tạo một thể hiện của lớp FontFileDefinition với đối tượng tệp nguồn làm đối số.
  • Sau đó, khởi tạo đối tượng lớp FontDefinition với kiểu Font là TTF và đối tượng FontFileDefinition.
  • Sau đó, mở phông chữ bằng phương thức Font. Open() với đối tượng FontDefinition làm đối số.
  • Cuối cùng, gọi phương thức SaveToFormat() để lưu nó. Nó lấy đường dẫn tệp đầu ra và FontSavingFormats thành WOFF làm đối số.

Mẫu mã sau đây trình bày cách chuyển đổi TTF thành WOFF bằng Java.

// Ví dụ mã này trình bày cách chuyển đổi TTF sang WOFF.
// Đường dẫn tệp TTF
String fontPath = "C:\\Files\\Montserrat-Regular.ttf";

// Tải tệp Phông chữ
FileSystemStreamSource source = new FileSystemStreamSource(fontPath);

// Tạo định nghĩa tệp phông chữ
FontFileDefinition fileDefinition = new FontFileDefinition(source);

// Tạo định nghĩa phông chữ
FontDefinition fontDefinition = new FontDefinition(FontType.TTF, fileDefinition);

// Mở phông chữ
Font font = Font.open(fontDefinition);

// Đường dẫn đầu ra WOFF
String outPath = "C:\\Files\\TtfToWoff_out1.woff";
FileOutputStream outStream = new FileOutputStream(outPath);

// Chuyển đổi TTF sang WOFF
font.saveToFormat(outStream, FontSavingFormats.WOFF);

Chuyển đổi TTF sang WOFF2 bằng Java

WOFF2 là phiên bản cập nhật của WOFF. Nó cung cấp nhiều khả năng nén hơn do có kích thước tệp nhỏ hơn và cung cấp hiệu suất tốt hơn cho các trình duyệt hiện đại. Chúng tôi cũng có thể chuyển đổi TTF thành WOFF2 bằng cách làm theo các bước đã đề cập trước đó. Tuy nhiên, chúng ta chỉ cần đặt FontSavingFormats là WOFF2 trong bước cuối cùng.

Mẫu mã sau đây trình bày cách chuyển đổi TTF thành WOFF2 bằng Java.

// Ví dụ mã này trình bày cách chuyển đổi TTF thành WOFF2.
// Đường dẫn tệp TTF
String fontPath = "C:\\Files\\Montserrat-Regular.ttf";

// Tải tệp Phông chữ
FileSystemStreamSource source = new FileSystemStreamSource(fontPath);

// Tạo định nghĩa tệp phông chữ
FontFileDefinition fileDefinition = new FontFileDefinition(source);

// Tạo định nghĩa phông chữ
FontDefinition fontDefinition = new FontDefinition(FontType.TTF, fileDefinition);

// Mở phông chữ
Font font = Font.open(fontDefinition);

// Đường dẫn đầu ra WOFF
String outPath = "C:\\Files\\TtfToWoff_out1.woff2";
FileOutputStream outStream = new FileOutputStream(outPath);

// Chuyển đổi TTF sang WOFF
font.saveToFormat(outStream, FontSavingFormats.WOFF2);

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử thư viện mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, chúng ta đã học cách chuyển đổi Phông chữ True Type sang Phông chữ Mở trên Web trong Java. Chúng tôi cũng đã thấy cách lưu TTF dưới dạng WOFF2 theo chương trình. Bên cạnh đó, bạn có thể tìm hiểu thêm về API Aspose.Font cho Java bằng cách sử dụng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm