I den här steg-för-steg-guiden förklarar vi hur du får teckensnittsmått i C#. Den här handledningen tillhandahåller kod för att få typsnittsmått för Type1 i C#, men Aspose.Font for .NET, ett C#-teckensnittsbibliotek hjälper dig att läsa teckensnittsmått i C# från andra teckensnittstyper, inklusive TruType- och OpenType-teckensnittsformat.
Steg för att få teckensnittsmått i C#
- Installera paketet Aspose.Font for .NET från NuGet.org
- Inkludera Aspose.Font, Aspose.Font.Sources och Aspose.Font.Type1 namnrymder
- Ansök licens för Aspose.Font för .NET för att undvika utvärderingsvattenstämpel
- Ladda ingångstypsnittet Type1 i objektet FileSystemStreamSource
- Skapa ett FontFileDefinition-objekt från strömkällan
- Skapa ett FontDefinition-objekt från fildefinitionen
- Öppna teckensnittsdefinition som Type1Font objekt
- Skaffa nu alla metric-attribut för typsnittet Type1
Ett teckensnitt innehåller statistikinformation som hjälper till att beskriva glyferna inuti ett teckensnitt. Denna mätinformation för typsnitten hjälper en dator att lära sig hur man ritar tecken och meningar på skärmen. Om vi vill bearbeta denna mätinformation via kod i våra .NET-applikationer är det ingen lätt uppgift. Men Aspose.Font för .NET hjälper till att göra hela processen mycket enkel och lätt med några få steg som nämnts ovan.
Kod för att få teckensnittsmått i C#
using System; | |
//Add reference to Aspose.Font for .NET API | |
//Use following namespaces to get font metrics | |
using Aspose.Font; | |
using Aspose.Font.Sources; | |
using Aspose.Font.Type1; | |
namespace GetFontMetrics | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
//Set Aspose license before getting font metrics | |
//using Aspose.Font for .NET | |
Aspose.Font.License AsposeFontLicense = new Aspose.Font.License(); | |
AsposeFontLicense.SetLicense(@"c:\asposelicense\license.lic"); | |
//Load Type1 font into a file stream object & read font definition | |
FileSystemStreamSource Type1FontFileSource = new FileSystemStreamSource("SampleInputType1Font.pfb"); | |
FontFileDefinition Type1FontFileDefintion = new FontFileDefinition(Type1FontFileSource); | |
FontDefinition Type1FontDefinition = new FontDefinition(FontType.Type1, Type1FontFileDefintion); | |
//Open Type1 font | |
Type1Font InputType1Font = Font.Open(Type1FontDefinition) as Type1Font; | |
//Read font metrics information and use it for further processing | |
string FontName = InputType1Font.FontName; | |
int FontGlyphcount = InputType1Font.NumGlyphs; | |
double FontMetricsAscender = InputType1Font.Metrics.Ascender; | |
double FontMetricsDescender = InputType1Font.Metrics.Descender; | |
double FontMetricsTypoAscender = InputType1Font.Metrics.TypoAscender; | |
double FontMetricsTypoDescender = InputType1Font.Metrics.TypoDescender; | |
double FontMetricsUnitsPerEM = InputType1Font.Metrics.UnitsPerEM; | |
//display information to console in this case | |
Console.WriteLine( | |
"Font Name: {0}, " + | |
"Glyph Count: {1}, " + | |
"Asender: {2}, " + | |
"Descender: {3}, " + | |
"Typo Ascender: {4}, " + | |
"Typo Descender: {5}, " + | |
"Units Per EM: {6}", | |
FontName, | |
FontGlyphcount, | |
FontMetricsAscender, | |
FontMetricsDescender, | |
FontMetricsTypoAscender, | |
FontMetricsTypoDescender, | |
FontMetricsUnitsPerEM | |
); | |
} | |
} | |
} |
I koden ovan laddar vi ett PFB-filformat, som innehåller vårt typsnitt Typ1 som vi är intresserade av att bearbeta i C#-kod. När vi har laddat font och konverterat det till ett Type1Font-objekt, kan vi extrahera teckensnittsmått i C# från den här filen.
Den här koden kan hjälpa dig att enkelt skapa en C#-fontläsare i dina .NET-applikationer inklusive webb-, skrivbords-, Windows- och Microsoft Store-applikationer.