Processador de Arquivos SVG Aspose.Words para .NET

Aspose.Words SVG File Processor para .NET permite que você crie, modifique e salve de forma programática SVG gráficos de suas aplicações .NET. Porque Aspose.Words não é nativo Carga SVG como um formato de documento, este plugin é projetado para ser usado também com plugins de converter (por exemplo, DOCX/HTML/PDF/SVG) ou qualquer importação upstream que produza a marcação SV G. Você pode, em seguida, aperfeiçoar o SVg (formas de edição, caminhos, texto, estilos) e serializar a saída de acordo com os padrões.

Instalação e Setup

Observação: Este plugin fornece uma superfície de API focada em SVG que complementa, não substitui, as características essenciais de Aspose.Words.

Características e Capacidades

Criação de Documentos SVG

  • Instalar um novo SVG em código, configurar width, height, e viewBox.
  • Escolha unidades absolutas (px, mm, in) ou confie no viewBox para uma saída responsiva.

Formas e Paths

  • Crie e edite os elementos rect , circuito e ellipse.
  • Suporte de comando completo path (M/L/H/V/C/S/Q/T/A/Z) com opções de inserção/eliminação, transformação e enchimento.

Texto e Typografia

  • Adicionar <text> e <tspan> nódulos com família de letras, tamanho, peso, mudança de linha de base, espaço de letra / palavra e ancoros (start / middle / end).
  • Aplique CSS-like styling inline ou através de definições de classe reutilizáveis.

Grupo e Layering

  • Organize o conteúdo com <g> grupos; aplicar transformações no nível de grupo (translate/scale/rotate/skew).
  • Grupos de nuvens para espelhar hierarquias de estilo de camada.

Gradientes, padrões, filtros

  • Defina ** gradientes lineares/radiais ** , ** padrões** e faça referência a eles por ID.
  • Adicione filtros (blur, sombra de queda, matriz de cor) para efeitos visuais avançados.

Imagem embutida

  • Inserir imagens de raster através <image> Usando URIs externos ou dados Base64.
  • Posição de controle, tamanho (com preservaçãoAspectRatio) e opacidade.

Integração Converter

  • Fluxo típico: Import (por exemplo, DOCX→SVG) → Refine com o SVG File Processor (ajustar cores, adicionar marcadores de água, otimizar caminhos) • Save.
  • Preservar ou reescrever IDs, classes e defeitos durante o post-processamento.

Serialização e Exportação

  • Salve SVG compacto ou impresso.
  • Opcionalmente inline recursos (fonte / imagens) ou mantê-los externos.
  • Assegurar a marcação padrão compatível com os renderes modernos.

Início rápido: criação de um 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-processo um 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");

Dicas e Melhores Práticas

  • Use viewBox com coordenadas relativas para gráficos responsivos.
  • Grupo com sabedoria : aplique transformações para grupos em vez de per-element para simplificar a marcação.
  • Coloque defs (gradientes, padrões, símbolos, filtros) na parte superior e referência por ID.
  • Mantenha grandes bitmaps ** externos** para SVGs menores; insira apenas ativos pequenos.
  • Preferindo **pretty-print ** durante o desenvolvimento; minify na produção.
  • Iniciar ** licença medida** cedo para evitar interrupções.

Erro de gestão e validação

  • O processador valida os atributos, IDs e referências necessários.
  • Exceções claras para caminhos malformados, transformações inválidas ou ausentes defs dos objetivos.
  • O modo opcional “lenente” pode superar questões não críticas e continuar serializando.

Performance

  • Transmissão de carga/salvação para documentos grandes.
  • Reutilizar definições de gradiente/filter para evitar duplicados.
  • Query através de selecionadores de peso leve (por ID / classe / nome) para edição rápida.
 Português