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

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, y viewBox.
  • 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.
 Español