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 fonte | Objeto de fonte |
|---|---|
TTF | Aspose.Font.Ttf.TtfFont |
Type1 | Aspose.Font.Type1.Type1Font |
CFF | Aspose.Font.Cff.CffFont |
OTF | Aspose.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:
- Carregue a fonte CFF de origem. Crie o caminho de entrada com
DataDir,CFFe29645.cff. Crie umaFontDefinitioncomFontType.CFFe umaFontFileDefinitionque especifique a extensãocffe umaFileSystemStreamSource. Carregue a fonte comFont.Open. - Converta a fonte para TrueType. Chame
font.Convert(FontType.TTF)e converta o resultado para o tipoTtfFont. O exemplo lança umaInvalidOperationExceptionse a conversão não devolver uma fonte TrueType. - Altere o nome da fonte convertida. Defina
destFont.FontNamecomo o valor original defont.FontNameseguido de_Converted. - Prepare o caminho de saída. Combine
OutputDireCffToTtf_out.ttfcomPath.Combine. - 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.