Aspose.Words SVG 文件处理器用于 .NET

Aspose.Words SVG 文件处理器为 .NET 允许您编程构建、修改和保存 SVG 您的 .NET 應用程式的圖形. 因為 Aspose.Words 沒有原始 负载 SVG 作为文档格式,该插件旨在使用 ** 与转换器插入** (例如,DOCX/HTML/PDF → SV G) 或任何生成 SVg 标签的升级进口.

安装和设置

  • Aspose.Words for .NET NuGet 包添加到您的项目中 安装 指南.
  • 在应用程序启动时设置测量许可 计量许可 .

注意: 此插件提供一个以 SVG 为中心的 API 表面,它补充,而不是取代,核心 Aspose.Words 功能.

特性和能力

SVG 文件创建

  • 在代码中启动一个新的 SVG,设置 width, height, 和 viewBox.
  • 选择绝对单位(px、mm、in)或依靠 viewBox 为响应性输出.

形状与路径

  • 创建和编辑 直 、 循环 、“”、“线”、“波利林”和“聚合物”元素.
  • path 命令支持(M/L/H/V/C/S/Q/T/A/Z)与分区插入/移除、转换和冲击/填充选项.

文本与图形

  • 添加 <text><tspan> 带有字体家族、尺寸、重量、基线转换、字母/字面空间和轴承(开始/中间/结尾).
  • 应用 CSS 类似的风格在线或通过可重复使用的类定义.

组合 & Layering

  • 组织内容与 <g> 组;在组级别上应用转换(翻译/规模/旋转/滑板).
  • 树木团体为镜子层风格的序列.

格拉迪安,模式,过滤器

  • 定义 **线性/放射性格拉迪因特 ** 、 模式 ,并以 ID 引用它们.
  • 添加 ** 过滤器** (蓝色,落影,颜色矩阵) 为先进的视觉效果.

图像包装

  • 插入Raster图像通过 <image> 使用外部 URI 或 Base64 数据.
  • 控制配置、尺寸(保留AspectRatio)和不透明度.

转换集成

  • 典型流量: Import (例如,DOCX→SVG) → Refine 与 SVG 文件处理器(调整颜色,添加水标志,优化路径)→ Save.
  • 在处理后保存或重新编写ID、类和存款.

序列化与出口

  • 保存微型或精致印刷的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 :将转换应用于组,而不是对元素,以简化标记.
  • defs (格拉迪安,模式,符号,过滤器)放在顶部,并以 ID 引用.
  • 保持大型比特地图 ** 外部** 小型 SVG; 只输入小资产.
  • 最好在开发期间 pretty-print ;在生产中 minify.
  • 提前启动 ** 测量许可证** 以避免中断.

错误处理与验证

  • 处理器验证所需的属性、ID和参考.
  • 明确的例外,错误的路径,无效的转变,或缺席 defs 目标.
  • 可选的“光明”模式可以摆脱非关键问题,并继续进行序列化.

Performance

  • 播放负载/存储大文件.
  • 重复使用格拉迪特/过滤器定义,以避免双重节点.
  • 通过轻量级选择器(按 ID/类/名称)进行查询,以便快速编辑.
 中文