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.
Método Aspose.Font.Font.Convert (FontType FontType) foi projetado para esses casos. Este método converte uma fonte no tipo especificado e Retorna o objeto herdado da classe asposit.font.font que corresponde ao valor fontType, passado para Convert() método.
A tabela seguinte mostra um mapa de coerência entre FontType valores e objetos, herdados da classe asposit.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.
No método atual do momento
Convert() suporta a conversão apenas em formato de font TrueType (Fonttype.ttf), por isso sempre retorna
O objeto do tipo
ttffont como resultado da conversão independentemente da fonte de origem usada.
O próximo snippet de código carrega cff font centurygothic do disco, converte -o em formato truetype e muda o nome da fonte convertida para" CenturyGothic_Converted “.
Cumprir as próximas ações:
- Carregue a fonte CFF de origem –
- Crie o caminho absoluto para o ficheiro de origem utilizando a constante do diretório de dados:
1string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");Isto garante o local correto do ficheiro, independentemente do sistema operativo.
- Crie uma
FontFileDefinitionque informe o Aspose.Font do formato físico do ficheiro ("cff") e forneça uma fonte de fluxo para o ficheiro:
1var fontFileDef = new FontFileDefinition("cff", new FileSystemStreamSource(fontPath));- Crie uma
FontDefinitionque combine o tipo de letra pretendido (FontType. CFF) com ofontFileDefcriado anteriormente:
1var fontDefinition = new FontDefinition(FontType. CFF, fontFileDef);- Abra a fonte utilizando
Font. Open(fontDefinition). O método retorna uma instância genérica deFontque representa a fonte CFF carregada e pode ser utilizada para passos de conversão posteriores.
- Converta a fonte para TrueType –
- Invoque o método de conversão no objeto
Fontcarregado anteriormente:
1Aspose.Font.Font convertedFont = font.Convert(FontType.TTF);- O método
Convertlê os dados CFF de origem, aplica o algoritmo de conversão e devolve uma nova instância deAspose.Font.Fontque representa internamente uma fonte TrueType (TtfFont). - Esta
convertedFontgenérica pode ser convertida para o tipo concretoAspose.Font.Ttf.TtfFontpara aceder a propriedades específicas de TrueType.
- Transforme o resultado na classe TrueType concreta e renomeie –
- Transforme com segurança a fonte genérica
convertedFontna classe TrueType concreta:
1Aspose.Font.Ttf.TtfFont destFont = convertedFont as Aspose.Font.Ttf.TtfFont;- Verifique se a conversão foi bem-sucedida (
destFont != null). Se a conversão falhar, trate o erro adequadamente. - Defina um novo nome para a fonte convertida:
1destFont.FontName = "CenturyGothic_Converted";- Isto atualiza os metadados do nome da fonte interna, que serão refletidos no ficheiro guardado.
- Prepare o caminho do ficheiro de saída –
- Escolha o nome do ficheiro de saída pretendido, por exemplo,
"CffToTtf_out.ttf". - Crie o caminho de saída completo utilizando a constante do diretório de saída:
1string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");Path.Combinegarante separadores de caminho correctos em todas as plataformas e concatena o directório e o nome do ficheiro de forma segura.
- Guarde a fonte TrueType convertida –
- Persista a fonte TrueType renomeada no disco:
1destFont. Save(outPath);- Após guardar, pode, opcionalmente, verificar se o ficheiro foi criado:
1bool exists = System.IO.File.Exists(outPath);- Registar o
outPathou a verificação de existência ajuda a confirmar a conversão e a gravação bem-sucedidas.
1
2 // Abra a fonte CFF
3 string fontpath = path.combine (datadir, "centurygothic.cff");
4 FontDefinition fontDefinition = new FontDefinition (Fonttype.cff, new FontfiledEfinition ("CFF", New FileSystemStreamSource (FontPath)));
5 Font font = font.open (FontDefinition);
6
7 // Convert font into TrueType format and cast font returned to Aspose.Font.Ttf.TtfFont
8 Aspose.Font.Ttf.TtfFont destFont = font.Convert(FontType.TTF) as Aspose.Font.Ttf.TtfFont;
9
10 // Change name of converted font
11 destFont.FontName = "CenturyGothic_Converted";
12
13 // Ttf output settings
14 string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");
15
16 // Save resultant font with font name changed
17 destFont.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.