Cargando fuentes SVG | .NET

Cargando fuentes SVG con Aspose.Font para .NET

Por qué fuentes SVG?

Aspose.Font proporciona una API única y unificada para cargar cualquier tipo de fuente compatible (TTF, OTF, WOFF, WOFF2, SVG, …) y trabajar con ella como un objeto fuertemente tipado Aspose.Font.Font.

Qué se necesita

ElementoDescripciónCómo obtener
Aspose.Font for .NETBiblioteca central que lee/escribe todos los formatos de fuente compatibles (incluido SVG).dotnet add package Aspose.Font
o mediante la UI de NuGet: https://www.nuget.org/packages/Aspose.Font/
Target framework.NET Framework 4.x / .NET Core 3.x / .NET 5/6/7 – cualquier plataforma compatible con Aspose.Font.No se necesita tiempo de ejecución adicional.
Importaciones de espacio de nombrescsharp<br>using Aspose.Font;<br>using Aspose.Font.Sources;<br>using System.IO;<br>

Añadir el paquete NuGet

1dotnet add package Aspose.Font

Conceptos clave de la API

Clase / EnumeraciónPropósito
FontDefinitionDescribe qué se quiere cargar (tipo de fuente + origen).
FontFileDefinitionAsocia una fuente de flujo (FileSystemStreamSource, ByteContentStreamSource, etc.) con la extensión de archivo ("svg").
FileSystemStreamSource / ByteContentStreamSourceProporciona un flujo legible de los bytes subyacentes – ya sea desde un archivo en disco o desde un búfer en memoria.
Font.Open(FontDefinition)Método de fábrica que analiza el origen y devuelve una implementación concreta de Aspose.Font.Font (SvgFont).

Lo único que cambia entre formatos es el valor del enum FontType (Svg) y la cadena de extensión de archivo ("svg").

Cargando una fuente SVG – tres escenarios comunes

Cargando desde el sistema de archivos

 1using System;
 2using System.IO;
 3using Aspose.Font;
 4using Aspose.Font.Sources;
 5
 6class LoadSvgFromFile
 7{
 8    static void Main()
 9    {
10        // 1️⃣ Ruta al archivo *.svg*
11        string svgPath = @"C:\Fonts\MyWebFont.svg";
12
13        // Verificar que el archivo exista
14        if (!File.Exists(svgPath))
15            throw new FileNotFoundException($"SVG file not found: {svgPath}");
16
17        // 2️⃣ Fuente de flujo que lee directamente del archivo
18        FileSystemStreamSource streamSrc = new FileSystemStreamSource(svgPath);
19
20        // 3️⃣ FontFileDefinition – indicamos a Aspose que la extensión es "svg"
21        FontFileDefinition fileDef = new FontFileDefinition("svg", streamSrc);
22
23        // 4️⃣ FontDefinition – especificamos el tipo exacto de fuente
24        FontDefinition fontDef = new FontDefinition(FontType.Svg, fileDef);
25
26        // 5️⃣ Cargar la fuente
27        Font svgFont = Font.Open(fontDef);
28
29        Console.WriteLine($"Loaded font: {svgFont.GetType().Name}");   // → SvgFont
30    }
31}

Resultado: svgFont es una instancia de Aspose.Font.Svg.SvgFont. Desde aquí puede consultar glifos, métricas o convertirla a otro formato.

Cargando desde una matriz de bytes

 1using System;
 2using System.IO;
 3using Aspose.Font;
 4using Aspose.Font.Sources;
 5
 6class LoadSvgFromBytes
 7{
 8    static void Main()
 9    {
10        // Supongamos que la fuente SVG se incluyó como recurso incrustado
11        byte[] svgBytes = File.ReadAllBytes(@"C:\Fonts\MyWebFont.svg");
12
13        // Envolver los bytes sin procesar en una fuente de flujo
14        ByteContentStreamSource byteSrc = new ByteContentStreamSource(svgBytes);
15
16        // Construir la definición – la extensión sigue siendo “svg”
17        FontDefinition fd = new FontDefinition(
18            FontType.Svg,
19            "svg",
20            byteSrc);
21
22        // Cargar
23        Font svgFont = Font.Open(fd);
24
25        Console.WriteLine($"Glyph count: {((Aspose.Font.Svg.SvgFont)svgFont).Glyphs.Count}");
26    }
27}

Cuándo usar:

Cargando directamente desde un flujo abierto

 1using System;
 2using System.IO;
 3using Aspose.Font;
 4using Aspose.Font.Sources;
 5
 6class LoadSvgFromOpenStream
 7{
 8    static void Main()
 9    {
10        using (FileStream fs = File.OpenRead(@"C:\Fonts\MyWebFont.svg"))
11        {
12            // La fuente de flujo puede construirse a partir de cualquier objeto Stream
13            FileSystemStreamSource src = new FileSystemStreamSource(fs);
14
15            // Pasar la fuente de flujo + extensión directamente a FontDefinition
16            FontDefinition fd = new FontDefinition(
17                FontType.Svg,
18                "svg",
19                src);
20
21            Font svgFont = Font.Open(fd);
22            Console.WriteLine($"Family name: {((Aspose.Font.Svg.SvgFont)svgFont).FamilyNames[0]}");
23        }
24    }
25}

Por qué es importante:
Si ya posee un Stream (por ejemplo, desde una carga en ASP.NET) no necesita escribirlo en disco primero – simplemente envuélvalo y ábralo.

Todos estos escenarios se demuestran en el repositorio oficial de ejemplos:

Conclusión

Con solo tres líneas de código puede obtener una fuente SVG desde disco, memoria o cualquier flujo personalizado y obtener de inmediato acceso programático completo a sus rutas de glifos, métricas y capacidades de conversión—gracias al modelo unificado de Aspose.Font. Combínelo con el motor de renderizado de Aspose.SVG si necesita rasterizar texto directamente en una imagen o PDF, y tendrá una canalización completa para tipografía web‑centrada moderna en .NET.

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.