Aspose.Words SVG File Processor для .NET
Aspose.Words SVG File Processor для .NET позволяет программировать, модифицировать и сохранить СВГ графики из ваших приложений .NET. Потому что Aspose.Words не родом Загрузка SVG как формат документа, этот плагин предназначен для использования в сочетании с конвертерными плагинами (например, DOCX/HTML/PDF/SVG) или любым ввозным потоком, который производит маркировку СВГ.
Инсталляция и установка
- Добавьте пакет Aspose.Words для .NET NuGet к вашему проекту Инсталляция Руководство.
- Настройка мерного лицензирования один раз на приложении Startup.Следуйте Лицензирование с учетом объема потребления .
Примечание: Этот плагин обеспечивает поверхность API, сосредоточенную на SVG, которая дополняет, а не заменяет основные функции Aspose.Words.
Особенности и способности
Создание документа SVG
- Настройка нового SVG в коде, установка
width
,height
, иviewBox
. - Выберите абсолютные единицы (px, mm, in) или полагайтесь на viewBox для ответного выхода.
Формы и пути
- Создайте и редактируйте элементы рект , круг и эллипс.
- Полная паута командная поддержка (M/L/H/V/C/S/Q/T/A/Z) с опциями сегмента ввода/удаления, трансформации и удаления/заполнения.
Текст и типография
- Добавить
<text>
и<tspan>
узлы с фамилией шрифта, размером, весом, перемещением базовой линии, пространством буквы/словы и анкеры (start/middle/end). - Применить CSS-подобное стилирование в строении или через повторные классовые определения.
Группировка & Layering
- Организуйте контент с
<g>
Группы; применять трансформации на уровне группы (перевод / скала / ротация / шев). - Нестные группы на зеркальные иерархии в стиле слоя.
Градиенты, шаблоны, фильтры
- Определите **линейные/радиальные градиенты ** , патрины и ссылайтесь на них по ИД.
- Присоединяйте фильтры (плав, тень, цветная матрица) для продвинутых визуальных эффектов.
Изображение Embedded
- Вставьте растерные изображения через
<image>
Использование внешних УРИ или данных Base64. - Контрольное расположение, размеры (с сохранениемAspectRatio) и непроницаемость.
Интеграция конвертера
- Типичный поток: **Import ** (например, DOCX→SVG) → **Refine ** с процессором файлов SVG (подготавливать цвета, добавлять водные знаки, оптимизировать маршруты) • Save СВГ.
- Сохранить или переписать идентификаторы, классы и дефы во время послепроцесса.
Сериализация и экспорт
- Сохранить компактный или довольно печатанный 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 с относительными координатами для реагирующей графики.
- Группа мудро : используйте трансформации для групп вместо per-element для упрощения маркировки.
- Введите defs (градиенты, шаблоны, символы, фильтры) в верхнюю часть и ссылку ID.
- Сохраняйте большие битмапы ** внешние** для меньших SVG; введите только небольшие активы.
- Предпочтитель **pretty-print ** во время разработки; minify в производстве.
- Иницијализуйте метровую лицензию рано, чтобы избежать перерывов.
Управление ошибками и валидация
- Процессор подтверждает необходимые атрибуты, идентификаторы и ссылки.
- Ясные исключения для нарушенных путей, недействительных трансформаций или отсутствия
defs
и целей. - Опциональный режим «огненный» может преодолеть некритические проблемы и продолжить сериализацию.
Performance
- Загрузка / сохранение для больших документов.
- Повторно использовать определения градиента/фильтра, чтобы избежать дублирования узлов.
- Вопрос через легкие селекторы (по ID/класс/име) для быстрого редактирования.