Aspose.Words SVG File Processor untuk .NET

Aspose.Words SVG File Processor untuk .NET membolehkan anda secara programmatik membina, memodifikasi, dan menyimpan SVG grafik daripada aplikasi .NET anda. kerana Aspose.Words tidak asli beban SVG sebagai format dokumen, plugin ini dimaksudkan untuk digunakan ** bersama-sama dengan plugin penukar** (contohnya, DOCX/HTML/PDF/SVG) atau apa-apa import upstream yang menghasilkan penanda SVD. Anda kemudian boleh memperbaiki SVM (mengedit bentuk, laluan, teks, gaya) dan serialisasi output yang mematuhi piawaian.

Pemasangan dan Setup

  • Tambah pakej Aspose.Words untuk .NET NuGet kepada projek anda Installation panduan yang.
  • Mengesetkan lesen yang diukur sekali pada app startup.Selengkapnya Lisensi Pengukuran .

Nota: Plugin ini menyediakan permukaan API berfokus SVG yang menambah, tidak menggantikan, ciri teras Aspose.Words.

Ciri-ciri dan keupayaan

Penciptaan Dokumen SVG

  • Menginstal SVG baru dalam kod, set width, height, dan viewBox.
  • Pilih unit mutlak (px, mm, in) atau bergantung kepada viewBox untuk output responsif.

Bentuk dan laluan

  • Mencipta dan mengedit unsur-unsur rect, circle dan ellipse.
  • Sokongan komando penuh path (M/L/H/V/C/S/Q/T/A/Z) dengan segmen memasukkan/mengalih keluar, transform, dan opsyen stroking/filling.

Perbincangan & Typografi

  • Add <text> dan <tspan> nod dengan keluarga fon, saiz, berat, pertukaran garis asas, huruf/perbezaan perkataan, dan anchors (start/middle/end).
  • Menggunakan CSS-like styling inline atau melalui definisi kelas yang boleh digunakan semula.

Pengumpulan & Layering

  • Mengatur kandungan dengan <g> kumpulan; melaksanakan transformasi pada tahap kumpulan (penterjemahan / skala / putaran / kerangka).
  • Kumpulan Nest untuk cermin hierarki gaya lapisan.

Peringkat, Patterns, Filter

  • Tentukan ** gradient linear/radial**, ** corak** dan rujuk mereka dengan ID.
  • Letakkan penapis **** (blur, bayang-bayang drop, matriks warna) untuk kesan visual lanjutan.

Gambaran keseluruhan Embedded

  • Masukkan imej raster melalui <image> menggunakan URI luaran atau data Base64.
  • Kawalan penempatan, saiz (dengan menyimpanAspectRatio), dan ketidakselesaan.

Integrasi Konversi

  • Aliran tipikal: Import (contohnya, DOCX→SVG) → Refine dengan SVG File Processor (sesuai warna, tambahkan tanda air, mengoptimumkan laluan) • Save.
  • Simpan atau tulis semula ID, kelas, dan defs semasa selepas pemprosesan.

Pengeluaran & Eksport

  • Simpan SVG yang kompak atau dicetak.
  • Secara opsional inline sumber (sumber/gambar) atau mengekalkan mereka luaran.
  • Memastikan markup yang mematuhi piawaian yang kompatibel dengan renderer moden.

Mulakan Cepat: Mencipta Dokumen 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-Process a Imported 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 dan Amalan Terbaik

  • Use viewBox dengan koordinat relatif untuk grafik responsif.
  • Kumpulan dengan bijak: menerapkan transformasi kepada kumpulan daripada per-elemen untuk memudahkan penandaan.
  • Letakkan defs (gradient, corak, simbol, penapis) di bahagian atas dan rujukan dengan ID.
  • Simpan bitmap besar ** luaran** untuk SVG yang lebih kecil; masukkan hanya aset kecil.
  • Lebih suka pretty-print semasa pembangunan; minify dalam pengeluaran.
  • Memulakan Lisensi berukuran lebih awal untuk mengelakkan gangguan.

Kesilapan Pengurusan & Validasi

  • Pemproses mengesahkan atribut, ID dan rujukan yang diperlukan.
  • Pengecualian yang jelas untuk laluan yang rosak, transformasi yang tidak sah, atau hilang defs Target yang.
  • Mod opsional “lenent” boleh melepaskan isu-isu bukan kritikal dan meneruskan serialisasi.

Performance

  • Streamed load/save untuk dokumen besar.
  • Gunakan semula definisi gradient/filter untuk mengelakkan nod duplikat.
  • Query melalui pemilih berat ringan (dengan ID/kelas/nama) untuk pengeditan cepat.
 Melayu