Lavora con glifi e le metriche dei caratteri di Type1 | .NET

Ottieni metriche di carattere

Le metriche dei caratteri contengono informazioni come Ascender, Descender, TypoAscender, TypoDescender e UnitsPerEm. Aspose.Font per .NET API può leggere le informazioni sulle metriche dei caratteri dal file di caratteri di Type1 utilizzando il seguente codice di esempio.

  1. Crea una FontDefinition – Crea il percorso completo del file del font Type1 (ad esempio, string fontPath = Path.Combine(dataDir, "courier.pfb");) e crea una FontFileDefinition per il formato .pfb, quindi costruisci una FontDefinition con FontType.Type1 e la definizione del file.
  2. Apri il font e accedi alle metriche – Apri il font utilizzando Aspose.Font.Font.Open(fd) che restituisce un oggetto Font. Esegui il cast di Type1Font per accedere alle proprietà specifiche di Type1, quindi leggi le proprietà delle metriche come Ascender, Descender, TypoAscender, TypoDescender e UnitsPerEm.
  3. Utilizzare le metriche – Questi valori possono essere utilizzati per calcoli di layout, ridimensionamento o qualsiasi elaborazione tipografica richiesta dall’applicazione.
 1// For complete examples and data files, please go to https://github.com/aspose-font/Aspose.Font-for-.NET
 2string fileName = dataDir + "courier.pfb"; //Font file name with full path
 3
 4FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
 5Type1Font font = Aspose.Font.Font.Open(fd) as Type1Font;
 6
 7string name = font.FontName;
 8Console.WriteLine("Font name: " + name);
 9Console.WriteLine("Glyph count: " + font.NumGlyphs);
10string metrics = string.Format(
11    "Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}",
12    font.Metrics.Ascender, font.Metrics.Descender,
13    font.Metrics.TypoAscender, font.Metrics.TypoDescender, font.Metrics.UnitsPerEM);
14
15Console.WriteLine(metrics);

Rileva i simboli latini

Aspose.Font per .NET ti consente di rilevare i simboli latini dai file di carattere di Type1. Questo può essere ottenuto utilizzando il seguente codice di esempio.

  1. Caricare il font Type1 – Creare una FontFileDefinition per il file .pfb (ad esempio, string fontPath = Path.Combine(dataDir, "courier.pfb");), quindi creare una FontDefinition con FontType.Type1 e la definizione del file.

  2. Rilevare i simboli latini supportati – Eseguire un’iterazione sulla raccolta di glifi del font e utilizzare DecodeToGid() per tradurre ogni carattere Unicode nel suo ID glifo interno. Se il metodo restituisce un ID diverso da zero, il glifo è presente nel font, a indicare il supporto per quel carattere latino.

 1// For complete examples and data files, please go to https://github.com/aspose-font/Aspose.Font-for-.NET
 2string fileName = dataDir + "courier.pfb"; //Font file name with full path
 3
 4FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
 5Type1Font font = Aspose.Font.Font.Open(fd) as Type1Font;
 6
 7bool latinText = true;
 8
 9
10for (uint code = 65; code < 123; code++)
11{
12    GlyphId gid = font.Encoding.DecodeToGid(code);
13    if (gid == null || gid == GlyphUInt32Id.NotDefId)
14    {
15        latinText = false;
16    }
17}
18
19if (latinText)
20{
21    Console.WriteLine(string.Format("Font {0} supports latin symbols.", font.FontName));
22}
23else
24{
25    Console.WriteLine(string.Format("Latin symbols are not supported by font {0}.", font.FontName));
26}

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.