Aspose.Words SVG File Processor для .NET

Aspose.Words SVG File Processor для .NET дозволяє програматично створювати, модифікувати і зберігати СВГ графіки з ваших .NET додатків. тому що Aspose.Words не родом Навантаження SVG як формат документа, цей плагін має бути використаний ** спільно з конвертерними плагінами** (наприклад, DOCX/HTML/PDF→SVG) або будь-яким ввезенням, що виробляє маркировку СВГ.

Інсталяція та установка

Примітка: Цей плагін забезпечує поверхню API, зосереджену на SVG, яка доповнює, а не заміняє основні функції Aspose.Words.

Особливості та можливості

Створення SVG Document

  • Налаштування нового SVG в коді, встановлення width, height, і viewBox.
  • Виберіть абсолютні одиниці (px, mm, in) або покладайтеся на viewBox для відповідного виходу.

Форми і шляхи

  • Створіть і редагуйте елементи ректи , циркуля , еліпс і лінія та полігін.
  • Повна Path командна підтримка (M/L/H/V/C/S/Q/T/A/Z) з опціями сегменту введення/виведення, трансформації та стримування/повнення.

ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ

  • Додати <text> і <tspan> вузли з сімейством шрифтів, розміром, вагою, переміщенням базової лінії, буквою / словом і анкетами (початок / середина / кінець).
  • Використовуйте CSS-подібний стилінг в лінії або за допомогою повторних класових визначень.

Створення & Layering

  • Організуйте контент з <g> Групи; застосовувати трансформації на рівні групи (переклад / масштаб / ротація / скеу).
  • Групи нігтів до дзеркала шарових ієрархій.

Фільтри, шаблони і фільтри

  • Визначте **лінійні/радиальні градіанти ** , патрини і вкажіть їх за ідентифікатором.
  • Додайте фільтри (блур, відтінки, матриці кольорів) для передових візуальних ефектів.

Зображення вбудовано

  • Введіть растер зображення через <image> Використання зовнішніх УРІ або даних Base64.
  • Контрольне розташування, розмір (з збереженнямAspectRatio) і непрямість.

Інтеграція конвертера

  • Типовий потік: Import (наприклад, DOCX→SVG) → Refine з процесором файлів SVG (пристосувати кольори, додавати водяні знаки, оптимізувати шляхи.
  • Зберегти або переписати ідентифікатори, класи та дефи під час післяобробки.

Серіалізація та експорт

  • Зберегти компактний або досить друкований SVG.
  • Оптимічно ввімкніть ресурси (фонти / зображення) або зберігайте їх зовнішніми.
  • Забезпечити стандартну маркування, сумісну з сучасними рендерами.

Швидкий старт: створення документа 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);

Пост-процес імпортуваного 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");

Традиції та найкращі практики

  • Використовуйте viewBox з відносними координатами для реактивної графіки.
  • Group wisely : застосовувати трансформації до груп замість per-element для спрощення маркування.
  • Введіть defs (градіанти, шаблони, символи, фільтри) в верхній частині і вкажіть ID.
  • Зберігайте великі бітмапи ** зовнішні** для менших SVG; введіть тільки невеликі активи.
  • Краще **pretty-print ** під час розробки; minify в виробництві.
  • Ініціалізуйте мірну ліцензію заздалегідь, щоб уникнути перерв.

Використання помилок та валідація

  • Процесор підтверджує необхідні атрибути, ідентифікатори та посилання.
  • Яскраві винятки для порушених шляхів, недійсних трансформацій або відсутніх defs цілі.
  • Факультативний «лінійний» режим може подолати некритичні проблеми і продовжувати серіалізацію.

Performance

  • Завантажити / зберегти для великих документів.
  • Повторне використання градієнт/фільтр визначення, щоб уникнути подвійних вузлів.
  • Пошук за допомогою легких селекторів (за ідентифікатором / класом / прізвищем) для швидких редагувань.
 Українська