อ่านข้อมูลแบบอักษร
.NET API Solution เพื่อรับข้อมูลฟอนต์และเมตริก
โซลูชัน Aspose.Font API มีฟังก์ชันการทำงานที่หลากหลายเพื่อทำงานกับแบบอักษร การแปลง การปรับแต่งสัญลักษณ์ การตรวจจับสัญลักษณ์ละติน และอื่นๆ อีกมากมาย คุณลักษณะบางอย่างเชื่อมโยงกับการปรับแต่งด้วยร่ายมนตร์เช่นการรับข้อมูลเกี่ยวกับร่ายมนตร์ที่มีอยู่ในแบบอักษร
ร่ายมนตร์คืออักขระที่ออกแบบเฉพาะตัวของแบบอักษรหรือการแสดงกราฟิกของสัญลักษณ์/อักขระ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับหน่วยแบบอักษรนี้ โปรดอ่านบทความ Introduction to Glyph
หน้านี้อธิบายตัวเลือกเกี่ยวกับวิธีการรับเมตริกแบบอักษรต่างๆ (จำนวนสัญลักษณ์ ความสูงของตัวอักษร ความกว้างของสัญลักษณ์ ‘A’ ฯลฯ) แต่มีการอธิบายการทำงานทั้งหมดอย่างละเอียดใน การใช้วัตถุสัญลักษณ์ ตัวอย่างนี้ยังรวมถึงส่วนหนึ่งของโค้ดเพื่อรับข้อมูลเมตาของฟอนต์ ชื่อฟอนต์ หากจะเจาะจง ฟังก์ชันดังกล่าวนำไปใช้กับซอฟต์แวร์เว็บได้ เช่น แอป Font Metadata ที่ Aspose มีอยู่ในระบบนิเวศ
ในการรับเมตริกฟอนต์ เราต้องการ:
Aspose.Font สำหรับ .NET API ซึ่งเป็น API การจัดการและการแปลงเอกสารที่มีคุณลักษณะหลากหลาย มีประสิทธิภาพ และใช้งานง่ายสำหรับแพลตฟอร์ม C#
เปิดตัวจัดการแพ็คเกจ NuGet และค้นหา Aspose.Font และติดตั้ง คุณสามารถใช้คำสั่งต่อไปนี้จาก Package Manager Console
Package Manager Console Command
PM> Install-Package Aspose.Font
ขั้นตอนในการรับเมตริกแบบอักษรโดยใช้ C#:
- ระบุแบบอักษรที่จะดึงข้อมูล
- ใช้อินเทอร์เฟซ Aspose.Font.IFontMetrics เพื่อรับเมตริกที่ระบุ
- รับตารางการเข้ารหัส cmap Unicode จากแบบอักษรเป็นวัตถุ TtfCMapFormatBaseTable เพื่อเข้าถึงข้อมูลเกี่ยวกับสัญลักษณ์แบบอักษรที่จำเป็น
- ในการรับดัชนีสัญลักษณ์สำหรับสัญลักษณ์ ‘A’ ให้ใช้วิธีการ GetGlyphIndex()
- รับพิมพ์เมตริกสัญลักษณ์
รหัส C# เพื่อรับข้อมูลเกี่ยวกับร่ายมนตร์ของฟอนต์
using Aspose.Font;
using Aspose.Font.Glyphs;
using Aspose.Font.Ttf;
//Font to extract info from
TtfFont font;
string name = font.FontName;
Console.WriteLine("Font name: " + name);
Console.WriteLine("Glyph count: " + font.NumGlyphs);
string metrics = string.Format(
"Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}",
font.Metrics.Ascender, font.Metrics.Descender,
font.Metrics.TypoAscender, font.Metrics.TypoDescender, font.Metrics.UnitsPerEM);
Console.WriteLine(metrics);
//Get the cmap unicode encoding table from the font as an object TtfCMapFormatBaseTable to access information about the font glyph for symbol 'A'.
//Also check that font has the object TtfGlyfTable (table 'glyf') to access glyph.
Aspose.Font.TtfCMapFormats.TtfCMapFormatBaseTable cmapTable = null;
if (font.TtfTables.CMapTable != null)
{
cmapTable = font.TtfTables.CMapTable.FindUnicodeTable();
}
if (cmapTable != null && font.TtfTables.GlyfTable != null)
{
Console.WriteLine("Font cmap unicode table: PlatformID = " + cmapTable.PlatformId + ", PlatformSpecificID = " + cmapTable.PlatformSpecificId);
//Code for 'A' symbol
char unicode = (char)65;
//Glyph index for 'A'
uint glIndex = cmapTable.GetGlyphIndex(unicode);
if (glIndex != 0)
{
//Glyph for 'A'
Glyph glyph = font.GetGlyphById(glIndex);
if (glyph != null)
{
//Print glyph metrics
Console.WriteLine("Glyph metrics for 'A' symbol:");
string bbox = string.Format(
"Glyph BBox: Xmin = {0}, Xmax = {1}" + ", Ymin = {2}, Ymax = {3}",
glyph.GlyphBBox.XMin, glyph.GlyphBBox.XMax,
glyph.GlyphBBox.YMin, glyph.GlyphBBox.YMax);
Console.WriteLine(bbox);
Console.WriteLine("Width:" + font.Metrics.GetGlyphWidth(new GlyphUInt32Id(glIndex)));
}
}
}
คำถามที่พบบ่อย
1. เมตริกแบบอักษรคืออะไร?
เป็นคุณสมบัติที่กำหนดวิธีการแสดงผลแบบอักษรบนหน้าจอ เมตริกบางอย่าง เช่น การขึ้น ทางลง ความกว้าง และการจัดช่องไฟ คล้ายกับ Glyph metrics
2. ฉันจะรับเมตริกแบบอักษรได้อย่างไร
ระบุแบบอักษรที่คุณต้องการใช้งาน ใช้คุณสมบัติของอินเทอร์เฟซคลาส Aspose.Font.IFontMetrics แยกข้อมูลเกี่ยวกับเมตริกแบบอักษรที่คุณต้องการ
3. ข้อมูลเมตาของแบบอักษรคืออะไร
Font Metadata เป็นข้อมูลเกี่ยวกับมัน ประกอบด้วยข้อมูลมากมาย เช่น ชื่อฟอนต์ ชื่อตระกูลฟอนต์ ชื่อ Postscript สิทธิ์การใช้งาน ข้อมูลผู้แต่งและผู้ออกแบบ และอื่นๆ อีกมากมาย
4. ฉันจะเปลี่ยนข้อมูลเมตาของแบบอักษรได้อย่างไร
หากต้องการดูหรือเปลี่ยนข้อมูลแบบอักษรทางออนไลน์ ให้ใช้แอปพลิเคชัน Font Metadata