Aspose.Words Procesador de Archivos SVG para .NET
Aspose.Words SVG File Processor para .NET le permite crear, modificar y guardar de forma programática El SVG gráficos de sus aplicaciones .NET. Porque Aspose.Words no es nativo carga SVG como formato de documento, este plugin está destinado a ser utilizado ** junto con los plugins de converter** (por ejemplo, DOCX/HTML/PDF → SV G) o cualquier importación de flujo superior que produzca la etiqueta SVg. Entonces se puede perfeccionar el SVD (formas de edición, caminos, texto, estilos) y serializar la producción conforme a los estándares.
Instalación y configuración
- Añadir el paquete Aspose.Words para .NET NuGet a su proyecto Instalación El guía.
- Configure la licencia medida una vez en la app startup Licenciamiento Medido .
Nota: Este plugin proporciona una superficie de API focada en SVG que complementa, no sustituye, las características básicas de Aspose.Words.
Características y capacidades
Creación de documentos SVG
- Instalar un nuevo SVG en código
width
,height
, yviewBox
. - Elegir unidades absolutas (px, mm, en) o depender de viewBox para una salida respondiente.
Formas y caminos
- Crea y edita los elementos rect , circuito , ellipse e line y polígeno.
- Soporte de comando completo path (M/L/H/V/C/S/Q/T/A/Z) con opciones de inserción/eliminación, transformación y enchufamiento.
Título y tipografía
- Añadir
<text>
y<tspan>
nódulos con familia de fuentes, tamaño, peso, cambio de base, espacio de letra/la palabra y anchores (start/middle/end). - Aplicar el estilo como CSS en línea o a través de las definiciones de clase reutilizables.
Grupos y Layering
- Organizar el contenido con
<g>
grupos; aplicar transformaciones en el nivel del grupo (traducción/escala/rotado/skew). - Grupos de nido para reflejar las jerarquías de estilo de la capa.
Gradientes, patrones y filtros
- Define los gradientes lineales/radiales , los patrones y los hace referencia por ID.
- Attach filters (blur, sombra de caída, matriz de color) para efectos visuales avanzados.
Imagen embotellada
- Insertar imágenes de raster a través de
<image>
URIs externos o datos de base64. - La ubicación de control, el tamaño (con la preservación de AspectRatio) y la opacidad.
Integración Converter
- Flujo típico: **Importación ** (por ejemplo, DOCX→SVG) → **Refine ** con el procesador de archivos SVG (ajustar colores, añadir marcos de agua, optimizar los caminos) ← Save SVC.
- Conservar o reescribir IDs, clases y depósitos durante el post-procesamiento.
Serialización y exportación
- Salva SVG compacto o prácticamente impreso.
- Opcionalmente en línea los recursos (fontes/imágenes) o mantenerlos externos.
- Asegúrese de que la etiqueta conforme a los estándares sea compatible con los renderes modernos.
Inicio rápido: Crear un documento SVG
// Pseudocode for the plugin’s SVG API surface
var svg = new SvgDocument(width: 800, height: 400, viewBox: "0 0 800 400");
// Background rectangle
var bg = svg.AddRect(x: 0, y: 0, width: 800, height: 400);
bg.Fill = "#ffffff";
// Title text
var title = svg.AddText("Quarterly Sales", x: 400, y: 40);
title.FontFamily = "Segoe UI";
title.FontSize = 24;
title.TextAnchor = SvgTextAnchor.Middle;
// A sample path (rounded shape)
var path = svg.AddPath("M40,120 C120,20 280,20 360,120 S600,220 720,120");
path.Stroke = "#0066cc";
path.StrokeWidth = 3;
path.Fill = "none";
// Group with transform
var g = svg.AddGroup();
g.Transform = "translate(60, 220) scale(1.2)";
g.AddCircle(cx: 0, cy: 0, r: 8).Fill = "#ff6a00";
g.AddText("Marker", x: 16, y: 4).FontSize = 12;
// Save to file/stream
using var fs = File.Create(@"C:\out\diagram.svg");
svg.Save(fs, prettyPrint: true);
Post-proceso de un SVG importado (DOCX → SvG → tweak → save)
// Assume 'svgMarkup' comes from a converter plugin (e.g., Document → Save as SVG)
var svg = SvgDocument.LoadFromString(svgMarkup);
// Example: recolor all elements with class="accent"
foreach (var el in svg.Query(".accent"))
el.Fill = "#1abc9c";
// Add a watermark group
var wm = svg.AddGroup();
wm.Opacity = 0.08;
wm.Transform = "rotate(-20 400 200)";
var wText = wm.AddText("CONFIDENTIAL", x: 400, y: 220);
wText.TextAnchor = SvgTextAnchor.Middle;
wText.FontFamily = "Segoe UI";
wText.FontSize = 64;
wText.Fill = "#000000";
svg.Save(@"C:\out\refined.svg");
Consejos y mejores prácticas
- Use viewBox con coordenadas relativas para gráficos responsivos.
- Grupo con sabiduría : aplique transformaciones a grupos en lugar de per elemento para simplificar la marcación.
- Pon defs (gradientes, patrones, símbolos, filtros) en la parte superior y referencia por ID.
- Mantenga grandes bitmaps exteriores para SVGs más pequeños; insertar sólo pequeños activos.
- Preferir **pretty-print ** durante el desarrollo; minify en la producción.
- Iniciar ** licencia mediada** temprano para evitar interrupciones.
El tratamiento y la validación de errores
- El procesador valida los atributos, IDs y referencias requeridos.
- Excepciones claras para los caminos malformados, transformaciones invalidas, o ausentes
defs
Objetivos. - El modo opcional “leniente” puede superar los problemas no críticos y seguir serializando.
Performance
- Transmisión de carga / ahorro para grandes documentos.
- Reutilizar las definiciones de gradiente/filter para evitar los nodos duplicados.
- Query a través de los selectores de peso ligero (por ID / clase / nombre) para editar rápidamente.