Prosesor File SVG Aspose.Words untuk .NET
Aspose.Words SVG File Processor untuk .NET memungkinkan Anda secara programmatik membuat, memodifikasi, dan menyimpan SVG grafis dari aplikasi .NET Anda.Karena Aspose.Words tidak asli beban SVG sebagai format dokumen, plugin ini dimaksudkan untuk digunakan ** bersama dengan plugins converter** (misalnya, DOCX/HTML/PDF/SVG) atau impor upstream apa pun yang menghasilkan markup SVM. Anda kemudian dapat memperbaiki SVK (membuat bentuk, jalur, teks, gaya) dan serialisasi output yang mematuhi standar.
Instalasi dan Setup
- Tambahkan paket Aspose.Words untuk .NET NuGet ke proyek Anda Instalasi Panduan yang.
- Mengkonfigurasi lisensi yang diukur sekali pada aplikasi startup Lisensi Terukur .
Catatan: Plugin ini menyediakan permukaan API yang berfokus pada SVG yang melengkapi, tidak menggantikan, fitur inti Aspose.Words.
Fitur dan Kapasitas
Penciptaan Dokumen SVG
- Menginstal SVG baru dalam kode, set
width
,height
, danviewBox
. - Pilih unit absolut (px, mm, in) atau bergantung pada viewBox untuk output responsif.
Bentuk & Jalan
- Mencipta dan mengedit elemen rect , circle , ellipse dan polyline.
- Full path command support (M/L/H/V/C/S/Q/T/A/Z) dengan segment insert/remove, transform, dan stroking/filling opsi.
Teks dan Typografi
- Tambahkan
<text>
dan<tspan>
nodus dengan keluarga fon, ukuran, berat, pergeseran garis dasar, huruf/percakapan, dan anchors (start/middle/end). - Gunakan CSS-like styling inline atau melalui definisi kelas yang dapat digunakan kembali.
Pengumpulan & Layering
- Mengatur konten dengan
<g>
kelompok; menerapkan transformasi di tingkat kelompok (translate/scale/rotate/skew). - Grup Nest untuk mirror layer-style hierarki.
Gradient, Pattern dan Filter
- Definisi ** gradient linear/radial ** , ** pattern** dan referensi mereka dengan ID.
- Tambahkan filter (blur, bayang-bayang, matriks warna) untuk efek visual lanjutan.
Gambar yang dimasukkan
- Menampilkan gambar raster melalui
<image>
menggunakan URI eksternal atau data Base64. - Penempatan kontrol, pengukuran (dengan mempertahankanAspectRatio), dan opacity.
Integrasi Converter
- Aliran tipikal: Import (contohnya, DOCX→SVG) → Refine dengan SVG File Processor (memperbaiki warna, tambahkan tanda air, mengoptimalkan jalur.
- Simpan atau tulis ulang ID, kelas, dan defs selama post-processing.
Serialisasi & Ekspor
- Simpan SVG kompak atau dicetak.
- Optional inline sumber daya (sumber/gambar) atau menjaga mereka eksternal.
- Memastikan label yang mematuhi standar yang kompatibel dengan renderer modern.
Mulai Cepat: Membuat 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 Praktik Terbaik
- Use viewBox dengan koordinat relatif untuk grafik responsif.
- Kumpulan dengan bijak : menerapkan transformasi ke kelompok bukannya per-elemen untuk menyederhanakan penanda.
- Letakkan defs (gradient, corak, simbol, filter) di bagian atas dan referensi dengan ID.
- Simpan bitmap besar ** eksternal** untuk SVG yang lebih kecil; masukkan hanya aset kecil.
- Lebih baik **pretty-print ** selama pengembangan; minify dalam produksi.
- Memulai Lisensi berukuran lebih awal untuk menghindari gangguan.
Kesalahan Pengelolaan & Validasi
- Prosesor mengevaluasi atribut, ID, dan referensi yang diperlukan.
- Pengecualian yang jelas untuk jalur yang rosak, transformasi yang tidak efektif, atau hilang
defs
dengan target. - Mode “lenent” pilihan dapat melepaskan masalah non-kritik dan terus serialisasi.
Performance
- Streamed load/save untuk dokumen besar.
- Menggunakan definisi gradient/filter untuk menghindari duplikasi nodus.
- Query melalui selektor ringan (dengan ID/kelas/nama) untuk pengeditan cepat.