ฟอนต์คือชุดของอักขระที่พิมพ์หรือแสดงได้ซึ่งมีรูปแบบ น้ำหนัก ฯลฯ ต่างกัน ฟอนต์เหล่านี้ใช้เพื่อเพิ่มรูปลักษณ์และความรู้สึกที่แตกต่างกันให้กับเอกสารหรือเว็บเพจตามความต้องการที่แตกต่างกัน ไฟล์ฟอนต์ประกอบด้วยการออกแบบและข้อมูลอื่นๆ เกี่ยวกับฟอนต์ ในบทความนี้ เราจะใช้ไฟล์ฟอนต์เพื่อตรวจสอบว่าฟอนต์รองรับสัญลักษณ์ละตินหรือไม่โดยทางโปรแกรมกับ Java
- Java API สำหรับการตรวจจับสัญลักษณ์ละตินในแบบอักษร TrueType และ Type1
- ตรวจหาสัญลักษณ์ละตินในแบบอักษร TrueType โดยใช้ Java
- ตรวจหาสัญลักษณ์ละตินในแบบอักษร Type1 โดยใช้ Java
Java API สำหรับการตรวจจับสัญลักษณ์ละตินในแบบอักษร TrueType และ Type1
Aspose.Font for Java เป็นไลบรารีสำหรับทำงานกับฟอนต์ เช่น TrueType, CFF, Type1 เป็นต้น API รองรับการโหลด การบันทึก และ การแยกข้อมูลเกี่ยวกับแบบอักษร API ยังให้คุณตรวจสอบการรองรับสัญลักษณ์ละตินในแบบอักษร คุณสามารถดาวน์โหลด API โดยใช้ Maven หรือดาวน์โหลด JAR จากส่วน ดาวน์โหลด
<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>
ตรวจหาสัญลักษณ์ละตินในแบบอักษร TrueType โดยใช้ Java
ต่อไปนี้เป็นขั้นตอนในการตรวจสอบว่าฟอนต์ TrueType รองรับสัญลักษณ์ละตินหรือไม่
- สร้างอินสแตนซ์ของคลาส FontDefinition โดยใช้ไฟล์ฟอนต์
- สร้างอินสแตนซ์ของคลาส TtfFont โดยใช้ออบเจกต์ของ FontDefinition ที่สร้างขึ้นในขั้นตอนที่แล้ว
- วนซ้ำรหัสต่างๆ และถอดรหัสเป็น glyph ID
- ตรวจสอบ glyph ID สำหรับการรองรับสัญลักษณ์ละติน
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการตรวจสอบว่าฟอนต์ TrueType รองรับสัญลักษณ์ละตินหรือไม่
// เส้นทางไฟล์แบบอักษร
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 ttfFont = (TtfFont) Font.open(fd);
boolean latinText = true;
// ตรวจสอบการรองรับสัญลักษณ์ละติน
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()));
}
ตรวจหาสัญลักษณ์ละตินในแบบอักษร Type1 โดยใช้ Java
กระบวนการตรวจหาการรองรับสัญลักษณ์ละตินในฟอนต์ Type1 นั้นคล้ายกับฟอนต์ TrueType ข้อแตกต่างเพียงอย่างเดียวคือเราจะใช้คลาส Type1Font เพื่อเข้าถึงข้อมูลแบบอักษร ต่อไปนี้เป็นขั้นตอนในการตรวจสอบการรองรับสัญลักษณ์ละตินในแบบอักษร Type1
- สร้างอินสแตนซ์ของคลาส FontDefinition โดยใช้ไฟล์ฟอนต์
- สร้างอินสแตนซ์ของคลาส Type1Font โดยใช้ออบเจกต์ของ FontDefinition ที่สร้างขึ้นในขั้นตอนที่แล้ว
- วนซ้ำรหัสต่างๆ และถอดรหัสเป็น glyph ID
- ตรวจสอบ glyph ID สำหรับการรองรับสัญลักษณ์ละติน
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการตรวจสอบว่าฟอนต์ Type1 เฉพาะรองรับสัญลักษณ์ละตินหรือไม่
// เส้นทางไฟล์แบบอักษร
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);
boolean latinText = true;
// ตรวจสอบการรองรับสัญลักษณ์ละติน
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()));
}
รับใบอนุญาตฟรี
หากต้องการลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน คุณสามารถขอ ใบอนุญาตชั่วคราวฟรี
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีตรวจหาการรองรับสัญลักษณ์ละตินในฟอนต์โดยใช้ Java ตัวอย่างโค้ดที่ใช้ร่วมกันทำให้คุณสามารถตรวจสอบว่าฟอนต์ใดสนับสนุนสัญลักษณ์ละตินหรือไม่ Aspose.Font for Java มีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานกับฟอนต์ ซึ่งคุณสามารถสำรวจโดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี