Conversión de fuentes. Detalles avanzados | .NET
En algunos casos, tiene sentido leer/modificar los datos de la fuente convertida antes de guardar la fuente.
El método Aspose.Font.Font.Convert(FontType fontType) fue diseñado para tales casos. Este método convierte una fuente al tipo especificado y devuelve el objeto heredado de la clase Aspose.Font.Font que corresponde al valor FontType, pasado al método Convert().
La siguiente tabla muestra un mapa de coherencia entre FontType valores y objetos, heredado de la clase base Aspose.Font.Font.
| Tipo de fuente | Objeto de fuente | 
|---|---|
TTF | Aspose.Font.Ttf.TtfFont | 
Type1 | Aspose.Font.Type1.Type1Font | 
CFF | Aspose.Font.Cff.CffFont | 
OTF | Aspose.Font.Ttf.TtfFont | 
Utilice el objeto de fuente resultante para acceder/cambiar las propiedades de la fuente antes de guardar la fuente resultante o en lugar de guardar la fuente resultante.
En este momento, el método
Convert() admite la conversión solo al formato de fuente TrueType (FontType.TTF), por lo que siempre devuelve
el objeto de tipo
TtfFont como resultado de la conversión independientemente de la fuente fuente utilizada.
El siguiente fragmento de código carga la fuente CFF CenturyGothic desde el disco, la convierte al formato TrueType y cambia el nombre de la fuente convertida a “CenturyGothic_Converted”.
Cumplir con las siguientes acciones:
- Cargar la fuente CFF de origen –
 
- Construir la ruta absoluta al archivo de origen usando la constante del directorio de datos:
 
1string fontPath = Path.Combine(DataDir, "CenturyGothic.cff");Esto garantiza la ubicación correcta del archivo independientemente del sistema operativo.
- Crear una 
FontFileDefinitionque indique a Aspose.Font el formato físico del archivo ("cff") y proporcione una fuente de flujo para el archivo: 
1var fontFileDef = new FontFileDefinition("cff", new FileSystemStreamSource(fontPath));- Cree una 
FontDefinitionque combine el tipo de fuente deseado (FontType.CFF) con elfontFileDefcreado previamente: 
1var fontDefinition = new FontDefinition(FontType.CFF, fontFileDef);- Abra la fuente usando 
Font.Open(fontDefinition). El método devuelve una instancia genérica deFontque representa la fuente CFF cargada y puede usarse para posteriores pasos de conversión. 
- Convertir la fuente a TrueType –
 
- Invoque el método de conversión en el objeto 
Fontpreviamente cargado: 
1Aspose.Font.Font turnedFont = font.Convert(FontType.TTF); ```
2- El método `Convert` lee los datos CFF de origen, aplica el algoritmo de conversión y devuelve una nueva instancia `Aspose.Font.Font` que representa internamente una fuente TrueType (`TtfFont`).
3- Esta `convertedFont` genérica se puede convertir al tipo `Aspose.Font.Ttf.TtfFont` concreto para acceder a propiedades específicas de TrueType.
4
53. **Convertir el resultado a la clase TrueType concreta y renombrar** –
6- Convertir de forma segura la `convertedFont` genérica a la clase TrueType concreta:
7```csharp
8Aspose.Font.Ttf.TtfFont destFont = turnedFont as Aspose.Font.Ttf.TtfFont;- Verificar que la conversión se haya realizado correctamente (
destFont != null). Si la conversión falla, gestione el error como corresponda. - Establezca un nuevo nombre para la fuente convertida:
 
1destFont.FontName = "CenturyGothic_Converted";- Esto actualiza los metadatos internos del nombre de la fuente, que se reflejarán en el archivo guardado.
 
- Preparar la ruta del archivo de salida –
 
- Elija el nombre del archivo de salida deseado, por ejemplo, 
"CffToTtf_out.ttf". - Cree la ruta de salida completa utilizando la constante del directorio de salida:
 
1string outPath = Path.Combine(OutputDir, "CffToTtf_out.ttf");Path.Combinegarantiza separadores de ruta correctos en todas las plataformas y concatena el directorio y el nombre del archivo de forma segura.
- Guardar la fuente TrueType convertida –
 
- Conservar la fuente TrueType renombrada en el disco:
 
1destFont.Save(outPath);- Después de guardar, puede verificar opcionalmente que el archivo se creó:
 
1bool exists = System.IO.File.Exists(outPath);- Registrar 
outPatho la comprobación de existencia ayuda a confirmar que la conversión y el guardado se realizaron correctamente. 
 1 
 2    // Open cff font
 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);La gama completa de ejemplos para usar Aspose.Font para .NET se encuentra en la solución Aspose.Font.Examples.sln, en la carpeta net-examples del repositorio de Github Aspose.Font Documentation.