Glifos e métricas das fontes do tipo1 | .NET
Obtenha métricas de fonte
As métricas de fonte contêm informações como ascender, descender, typeoSaScender, typeNceSpend e UnitsPerEm. Aspose.font para a API .NET pode ler as informações das métricas de fonte do arquivo de fonte Type1 usando o seguinte código de amostra.
- Crie uma
FontDefinition– Crie o caminho completo para o ficheiro de fonte Type1 (por exemplo,string fontPath = Path.Combine(dataDir, "courier.pfb");) e crie umaFontFileDefinitionpara o formato.pfb. De seguida, crie umaFontDefinitioncomFontType. Type1e a definição do ficheiro. - Abra a fonte e aceda às métricas – Abra a fonte utilizando
Aspose.Font.Font.Open(fd), que devolve um objetoFont. Converta-o paraType1Fontpara aceder a propriedades específicas do Type1 e, em seguida, leia as propriedades das métricas, comoAscender,Descender,TypoAscender,TypoDescendereUnitsPerEm. - Utilizar as métricas – Estes valores podem ser utilizados para cálculos de layout, dimensionamento ou qualquer processamento tipográfico necessário para a sua aplicação.
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);Detectar símbolos latinos
Aspose.Font para .Net permite detectar símbolos latinos dos arquivos de fonte Type1. Isso pode ser alcançado usando o seguinte código de amostra.
Carregue a fonte Type1 – Crie uma
FontFileDefinitionpara o ficheiro.pfb(por exemplo,string fontPath = Path.Combine(dataDir, "courier.pfb");) e, em seguida, crie umaFontDefinitioncomFontType.Type1e a definição do ficheiro.Detetar símbolos latinos suportados – Itere sobre a coleção de glifos da fonte e utilize
DecodeToGid()para traduzir cada caractere Unicode para o seu ID de glifo interno. Se o método devolver um ID diferente de zero, o glifo está presente na fonte, indicando suporte para esse caractere 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}