Как получить метрики шрифта в C#

В этом пошаговом руководстве мы объясним, как получить метрики шрифта в C#. В этом руководстве представлен код для получения метрик шрифтов Type1 в C#, но Aspose.Font for .NET, библиотека шрифтов C#, помогает читать метрики шрифтов в C# из других типов шрифтов, включая форматы шрифтов TruType и OpenType.

Шаги для получения метрик шрифта в C#

  1. Установите пакет Aspose.Font for .NET с сайта NuGet.org.
  2. Включить пространства имен Aspose.Font, Aspose.Font.Sources и Aspose.Font.Type1.
  3. Примените лицензию к Aspose.Font для .NET, чтобы избежать водяных знаков оценки
  4. Загрузите входной шрифт Type1 в объект FileSystemStreamSource
  5. Создайте объект FontFileDefinition из источника потока
  6. Создайте объект FontDefinition из определения файла.
  7. Открыть определение шрифта как объект Type1Font
  8. Теперь получите все атрибуты метрик шрифта Type1.

Шрифт содержит информацию о метриках, которая помогает описать глифы внутри шрифта. Эта метрическая информация о шрифтах помогает компьютеру научиться рисовать символы и предложения на экране. Если мы хотим обрабатывать эту информацию о метриках с помощью кода в наших приложениях .NET, это непростая задача. Тем не менее, Aspose.Font для .NET помогает сделать весь процесс очень простым и легким, используя несколько шагов, как указано выше.

Код для получения метрик шрифта в 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
);
}
}
}

В приведенном выше коде мы загружаем формат файла PFB, который содержит наш шрифт Type1, который мы хотим обработать в коде C#. После того как мы загрузили font и преобразовали его в объект Type1Font, мы можем извлечь из этого файла метрики шрифта на C#.

Этот код может помочь вам легко создать средство чтения шрифтов C# в ваших приложениях .NET, включая веб-приложения, настольные приложения, окна и приложения Microsoft Store.

 Русский