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
- Adicione o Aspose.Words para .NET NuGet pacote ao seu projeto Instalação O guia.
- Configure a licença medida uma vez no app startup Licenciamento Ponderado .
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
, eviewBox
. - 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.