Phông chữ là một tập hợp các ký tự có thể in hoặc hiển thị với các kiểu dáng, trọng lượng khác nhau, v.v. Chúng được sử dụng để thêm giao diện khác cho tài liệu hoặc trang web dựa trên các yêu cầu khác nhau. Tệp phông chữ chứa thiết kế và thông tin khác liên quan đến phông chữ. Trong bài viết này, chúng tôi sẽ sử dụng các tệp phông chữ để phát hiện xem một phông chữ có hỗ trợ các ký hiệu Latinh hay không theo lập trình với Java.

API Java để phát hiện các ký hiệu Latinh trong TrueType và Type1 Fonts

Aspose.Font cho Java là một thư viện để làm việc với các phông chữ như TrueType, CFF, Type1, v.v. API hỗ trợ tải, lưu và trích xuất thông tin liên quan đến phông chữ. API cũng cho phép bạn phát hiện sự hỗ trợ cho các ký hiệu Latinh trong phông chữ. Bạn có thể tải xuống API bằng Maven hoặc tải xuống JAR từ phần tải xuống.

<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>

Phát hiện các ký hiệu Latinh trong Phông chữ TrueType bằng Java

Sau đây là các bước để phát hiện xem một phông chữ TrueType cụ thể có hỗ trợ các ký hiệu Latinh hay không.

  • Tạo một phiên bản của lớp FontDefinition bằng cách sử dụng tệp phông chữ.
  • Tạo một thể hiện của lớp TtfFont bằng cách sử dụng đối tượng của FontDefinition đã tạo ở bước trước.
  • Lặp qua các mã khác nhau và giải mã chúng thành các ID glyph.
  • Kiểm tra các ID glyph để biết sự hỗ trợ của các ký hiệu Latinh.

Mã mẫu sau đây cho biết cách phát hiện xem một phông chữ TrueType cụ thể có hỗ trợ các ký hiệu Latinh hay không.

// Đường dẫn tệp phông chữ
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// Tải tệp phông chữ
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// Kiểm tra sự hỗ trợ của các ký hiệu latin
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()));
}

Phát hiện các ký hiệu Latinh trong Phông chữ Type1 bằng Java

Quá trình phát hiện hỗ trợ cho các ký hiệu Latinh trong phông chữ Type1 tương tự như phông chữ TrueType. Sự khác biệt duy nhất là chúng tôi sẽ sử dụng lớp Type1Font để truy cập thông tin phông chữ. Sau đây là các bước để phát hiện sự hỗ trợ cho các ký hiệu Latinh trong phông chữ Type1.

  • Tạo một phiên bản của lớp FontDefinition bằng cách sử dụng tệp phông chữ.
  • Tạo một thể hiện của lớp Type1Font bằng cách sử dụng đối tượng của FontDefinition đã tạo ở bước trước.
  • Lặp qua các mã khác nhau và giải mã chúng thành các ID glyph.
  • Kiểm tra các ID glyph để biết sự hỗ trợ của các ký hiệu Latinh.

Mã mẫu sau đây cho biết cách phát hiện xem một phông chữ Type1 cụ thể có hỗ trợ các ký hiệu Latinh hay không.

// Đường dẫn tệp phông chữ
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// Tải tệp phông chữ
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// Kiểm tra sự hỗ trợ của các ký hiệu latin
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()));
}

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

Để dùng thử API mà không có giới hạn đánh giá, bạn có thể yêu cầu giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài viết này, bạn đã học cách phát hiện sự hỗ trợ cho các ký hiệu Latinh trong các phông chữ sử dụng Java. Các mẫu mã được chia sẻ cho phép bạn phát hiện xem một phông chữ cụ thể có hỗ trợ các ký hiệu Latinh hay không. Aspose.Font dành cho Java cung cấp nhiều tính năng bổ sung để làm việc với các phông chữ mà bạn có thể khám phá chi tiết bằng cách truy cập tài liệu chính thức. Trong trường hợp có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm