ตรวจสอบการสนับสนุนสัญลักษณ์ละตินสำหรับฟอนต์ TrueType หรือ Type1 ใน C#

สัญลักษณ์อักขระละตินคืออักขระที่อยู่ในรูปของเครื่องหมาย เครื่องหมาย หรือคำ แบบอักษรกำหนดวิธีการแสดงอักขระ/สัญลักษณ์แบบดิจิทัลหรือในรูปแบบที่พิมพ์ได้โดยใช้ชุดของคุณสมบัติ ไฟล์ฟอนต์ประกอบด้วยการออกแบบและข้อมูลอื่นๆ เกี่ยวกับฟอนต์ ในบางกรณี เราอาจต้องตรวจสอบว่าฟอนต์ใดรองรับสัญลักษณ์ละตินหรือไม่ ในบทความนี้ เราจะเรียนรู้วิธีตรวจสอบการสนับสนุนสัญลักษณ์ละตินสำหรับฟอนต์ TrueType หรือ Type1 ใน C#

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

  1. C# API เพื่อตรวจหาการสนับสนุนสัญลักษณ์ละตินในแบบอักษร
  2. ตรวจหาสัญลักษณ์ละตินในแบบอักษร TrueType โดยใช้ C#
  3. ตรวจหาสัญลักษณ์ละตินในแบบอักษร Type1 โดยใช้ C#

C # API เพื่อตรวจหาการสนับสนุนสัญลักษณ์ละตินในแบบอักษร

สำหรับการตรวจหาการสนับสนุนสัญลักษณ์ละตินในแบบอักษร เราจะใช้ API Aspose.Font for .NET อนุญาตให้โหลด บันทึก และดึงข้อมูลจาก ประเภทฟอนต์ที่รองรับ โปรด ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

PM> Install-Package Aspose.Font

ตรวจหาสัญลักษณ์ละตินในแบบอักษร TrueType โดยใช้ C

เราสามารถตรวจหาสัญลักษณ์ละตินในแบบอักษร TrueType โดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก โหลดไฟล์ฟอนต์โดยใช้คลาส FontFileDefinition
  2. ถัดไป เริ่มต้นวัตถุคลาส FontDefinition ด้วย FontType (TTF) และวัตถุ FontFileDefinition เป็นอาร์กิวเมนต์
  3. จากนั้น เรียกใช้เมธอด Font.Open() ด้วยวัตถุ FontDefinition เป็นอาร์กิวเมนต์ และเริ่มต้นวัตถุคลาส TtfFont
  4. หลังจากนั้น วนซ้ำรหัสต่างๆ และถอดรหัสเป็น Glyph ID
  5. สุดท้าย ตรวจสอบสัญลักษณ์สัญลักษณ์ ID สำหรับการรองรับสัญลักษณ์ละติน

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตรวจสอบว่าฟอนต์ TrueType รองรับสัญลักษณ์ละตินหรือไม่ใน C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการตรวจสอบว่าฟอนต์ TrueType รองรับสัญลักษณ์ละตินหรือไม่
// เส้นทางไฟล์ TTF
string fontPath = @"D:\Files\font\Montserrat-Regular.ttf";

// โหลดไฟล์ฟอนต์
FontFileDefinition fontFileDefinition = new FontFileDefinition("ttf", new FileSystemStreamSource(fontPath));

// วัตถุกำหนดแบบอักษร
FontDefinition fd = new FontDefinition(FontType.TTF, fontFileDefinition);

// เปิดแบบอักษร
TtfFont font = (TtfFont)Font.Open(fd);

var latinText = true;

// ตรวจสอบการรองรับสัญลักษณ์ละติน
for (uint code = 65; code < 123; code++)
{
    GlyphId gid = font.Encoding.DecodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.NotDefId)
    {
        latinText = false;
    }
}

if (latinText)
{
    Console.WriteLine("Font {0} supports latin symbols.", font.FontName);
}
else
{
    Console.WriteLine("Latin symbols are not supported by font {0}.", font.FontName);
}

ตรวจหาสัญลักษณ์ละตินในแบบอักษร Type1 โดยใช้ C#

เรายังสามารถตรวจจับสัญลักษณ์ละตินในฟอนต์ Type1 ได้โดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก โหลดไฟล์ฟอนต์โดยใช้คลาส FontFileDefinition
  2. ถัดไป เริ่มต้นวัตถุคลาส FontDefinition ด้วย FontType (Type1) และวัตถุ FontFileDefinition เป็นอาร์กิวเมนต์
  3. จากนั้น เรียกใช้เมธอด Font.Open() ด้วยวัตถุ FontDefinition เป็นอาร์กิวเมนต์ และเริ่มต้นวัตถุคลาส Type1Font
  4. หลังจากนั้น วนซ้ำรหัสต่างๆ และถอดรหัสเป็นรหัส Glyph
  5. สุดท้าย ตรวจสอบสัญลักษณ์สัญลักษณ์ ID สำหรับการรองรับสัญลักษณ์ละติน

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตรวจสอบว่าฟอนต์ Type1 เฉพาะรองรับสัญลักษณ์ละตินหรือไม่ใน C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการตรวจสอบว่าฟอนต์ Type1 รองรับสัญลักษณ์ละตินหรือไม่
// เส้นทางไฟล์แบบอักษร Type1
string fontPath = @"D:\Files\font\courier.pfb";

// โหลดไฟล์ฟอนต์
FontFileDefinition fontFileDefinition = new FontFileDefinition("pfb", new FileSystemStreamSource(fontPath));

// วัตถุกำหนดแบบอักษร
FontDefinition fd = new FontDefinition(FontType.Type1, fontFileDefinition);

// เปิดแบบอักษร
Type1Font font = (Type1Font)Font.Open(fd);

var latinText = true;

// ตรวจสอบการรองรับสัญลักษณ์ละติน
for (uint code = 65; code < 123; code++)
{
    GlyphId gid = font.Encoding.DecodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.NotDefId)
    {
        latinText = false;
    }
}

if (latinText)
{
    Console.WriteLine("Font {0} supports latin symbols.", font.FontName);
}
else
{
    Console.WriteLine("Latin symbols are not supported by font {0}.", font.FontName);
}

รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อทดลองใช้ห้องสมุดโดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีตรวจสอบว่าฟอนต์ TrueType หรือ Type1 ใดรองรับสัญลักษณ์ละตินหรือไม่ใน C# นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Font for .NET API โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

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