Conversão de fonte. Detalhes avançados | .NET

Em alguns casos, há um sentido de ler/modificar os dados da fonte convertida antes de salvar a fonte.

O método Aspose.Font.Font.Convert(FontType fontType) foi concebido para estes casos. Este método converte um tipo de letra para o tipo especificado e devolve o objeto herdado da classe Aspose.Font.Font que corresponde ao valor de FontType, passado para o método Convert().

A tabela seguinte mostra um mapa de coerência entre FontType valores e objetos, herdados da classe Aspose.Font.Font.

Tipo de fonteObjeto de fonte
TTFAspose.Font.Ttf.TtfFont
Type1Aspose.Font.Type1.Type1Font
CFFAspose.Font.Cff.CffFont
OTFAspose.Font.Ttf.TtfFont

Use o objeto de fonte resultante para acessar/alterar as propriedades da fonte antes de salvar a fonte resultante ou em vez de salvar a fonte resultante.

Neste momento, o método Convert() suporta a conversão apenas para o formato de fonte TrueType (FontType.TTF), pelo que devolve sempre o objeto do tipo TtfFont como resultado da conversão, independentemente da fonte de origem utilizada.

O exemplo seguinte carrega CFF/29645.cff, converte a fonte para TrueType e acrescenta _Converted ao nome original da fonte antes de a guardar.

Utilize os espaços de nomes Aspose.Font, Aspose.Font.Sources, Aspose.Font.Ttf, System e System.IO. Defina DataDir como o diretório que contém a pasta CFF e OutputDir como um diretório de saída existente.

Siga estes passos:

  1. Carregue a fonte CFF de origem. Crie o caminho de entrada com DataDir, CFF e 29645.cff. Crie uma FontDefinition com FontType.CFF e uma FontFileDefinition que especifique a extensão cff e uma FileSystemStreamSource. Carregue a fonte com Font.Open.
  2. Converta a fonte para TrueType. Chame font.Convert(FontType.TTF) e converta o resultado para o tipo TtfFont. O exemplo lança uma InvalidOperationException se a conversão não devolver uma fonte TrueType.
  3. Altere o nome da fonte convertida. Defina destFont.FontName como o valor original de font.FontName seguido de _Converted.
  4. Prepare o caminho de saída. Combine OutputDir e CffToTtf_out.ttf com Path.Combine.
  5. Guarde a fonte convertida. Chame destFont.Save(outPath) para guardar a fonte TrueType com o novo nome. O teste correspondente reabre o ficheiro guardado e verifica se o nome da fonte corresponde ao da fonte convertida.
 1// Convert a CFF font to TTF and change its name before saving
 2
 3// Open the CFF font
 4string fontPath = Path.Combine(DataDir, "CFF", "29645.cff");
 5FontDefinition fontDefinition = new FontDefinition(
 6    FontType.CFF, new FontFileDefinition("cff", new FileSystemStreamSource(fontPath)));
 7Font font = Font.Open(fontDefinition);
 8
 9// Convert to TrueType and obtain the format-specific font object
10TtfFont destFont = font.Convert(FontType.TTF) as TtfFont
11    ?? throw new InvalidOperationException("Conversion did not return a TrueType font.");
12
13// Change the converted font name before saving
14destFont.FontName = font.FontName + "_Converted";
15
16// Save the renamed TrueType font
17string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");
18destFont.Save(outPath);

A gama completa de exemplos para o uso de Aspose.Font para.net é colocada em solução Aspose.Font.examples.sln, na pasta net-examples da documentação Aspose.Font GitHub.