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.
- Crea una
FontDefinition– Crea il percorso completo del file del font Type1 (ad esempio,string fontPath = Path.Combine(dataDir, "courier.pfb");) e crea unaFontFileDefinitionper il formato.pfb, quindi costruisci unaFontDefinitionconFontType.Type1e la definizione del file. - Apri il font e accedi alle metriche – Apri il font utilizzando
Aspose.Font.Font.Open(fd)che restituisce un oggettoFont. Esegui il cast diType1Fontper accedere alle proprietà specifiche di Type1, quindi leggi le proprietà delle metriche comeAscender,Descender,TypoAscender,TypoDescendereUnitsPerEm. - 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.
Caricare il font Type1 – Creare una
FontFileDefinitionper il file.pfb(ad esempio,string fontPath = Path.Combine(dataDir, "courier.pfb");), quindi creare unaFontDefinitionconFontType.Type1e la definizione del file.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}