Aspose.Words SVG-filprocessor för .NET

Aspose.Words SVG File Processor för .NET låter dig programmerat bygga, modifiera och spara SVG grafik från dina .NET-applikationer. Eftersom Aspose.Words inte är nativt Laddning SVG som ett dokumentformat, denna plugin är avsedd att användas ** tillsammans med konverterplugins** (t.ex. DOCX/HTML/PDF → Svg) eller någon upstream import som producerar SVg markup. Du kan sedan förbättra svg (redigerade former, vägar, text, stilar) och serialisera standardöverensstämmande output.

Installation och installation

  • Lägg till Aspose.Words för .NET NuGet-paketet till ditt projekt Installation En guide.
  • Konfigurera mätad licens en gång på appstart Mätlicensiering .

Obs!: Denna plugin ger en SVG-fokuserad API-yta som kompletterar, inte ersätter, kärnfunktioner Aspose.Words.

Funktioner och förmågor

SVG Dokument Skapande

  • Instantera en ny SVG i kod, ställa in width, height, och viewBox.
  • Välj absoluta enheter (px, mm, in) eller lita på viewBox för responsiv utgång.

Former & Vägar

  • Skapa och redigera rect , cirkel , ellipse och linje samt polygon element.
  • Full path kommandotillskott (M/L/H/V/C/S/Q/T/A/Z) med segment insert/avlägsnande, transformationer och stroking/filling alternativ.

Text och typografi

  • Lägg till <text> och <tspan> noder med fontfamilj, storlek, vikt, baslinjeväxling, bokstav/ord spacing och anchors (start/middle/end).
  • Applicera CSS-liknande styling inline eller via återanvända klassdefinitioner.

Gruppering & Layering

  • Organisera innehåll med <g> grupper; tillämpa transformationer på gruppnivå (translate/scale/rotate/skew).
  • Nestgrupper för att spegla lager-stil hierarkier.

Gradienter, mönster och filter

  • Definiera **lineära/radiala gradienter ** , patter och hänvisa dem med ID.
  • Anslut filter (blur, drop skugga, färgmatrix) för avancerade visuella effekter.

Bilden införlivas

  • Inkludera rasterbilder via <image> Använd externa URI- eller Base64-data.
  • Kontroll placering, storlek (med bevarad AspectRatio) och opacitet.

Konverter integration

  • Typisk flöde: **Import ** (t.ex. DOCX→SVG) → **Refine ** med SVG File Processor (justerar färger, lägger till vattenmärken, optimerar vägar) • Save SV G.
  • Spara eller skriva om ID:er, klasser och anteckningar under efterbehandling.

Serialisering och export

  • Spara kompakt eller ganska tryckt SVG.
  • Optionellt inline resurser (källor/bilder) eller hålla dem externa.
  • Se till att standardöverensstämmande markup är kompatibel med moderna renderer.

Snabb start: Skapa ett SVG-dokument

// 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-processen en importerad SVG (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");

Tips och bästa praxis

  • Use viewBox med relativa koordinater för responsiva grafik.
  • Grupp klokt : Applicera transformationer till grupper i stället för per-element för att förenkla markup.
  • Placera defs (gradienter, mönster, symboler, filter) i toppen och referens med ID.
  • Håll stora bitmappar externa för mindre SVG: in endast små tillgångar.
  • Föredrar **pretty-print ** under utveckling; minify i produktion.
  • Initiera mätade licenser tidigt för att undvika avbrott.

Felhantering och validering

  • Processorn validerar nödvändiga attribut, ID och referenser.
  • tydliga undantag för felformade vägar, ogiltiga omvandlingar eller saknade defs Målsättningar.
  • Det valfria “ljusiga” läget kan övervinna icke-kritiska problem och fortsätta serialisering.

Performance

  • Streamed laddning/spara för stora dokument.
  • Återanvänd gradient/filter definitioner för att undvika dubbla noder.
  • Fråga via lättviktselektorer (per ID/klass/namn) för snabba redigeringar.
 Svenska