←Select platform

SvgDocument Class

Represents a Scalable Vector Graphics (SVG) document.
public class SvgDocument : ISvgDocument, IDisposable, ISerializable 
@interface LTSvgDocument : NSObject<ISvgDocument, NSCopying, NSCoding> 
public class SvgDocument implements ISvgDocument, Serializable 
public ref class SvgDocument : public ISvgDocument   
class SvgDocument.md), IDisposable, ISerializable: 

The SvgDocument class represents a Scalable Vector Graphics (SVG) object. LEADTOOLS supports versions 1.* to 2.0 of the SVG specification.

The SvgDocument class implements System.Runtime.Serialization.ISerializable and fully supports .NET serialization.

The SvgDocument class implements System.IDisposable. You must use the .NET dispose pattern or call Dispose on the object after using it.

The SvgDocument class implements Leadtools.ISvgDocument and can be cast directly from the other LEADTOOLS methods that return an instance of that interface.

For more information about using SvgDocument, refer to Working With SVG.


This example will try to load the first page of each document in a folder as SVG. If successful, it will save the page as an SVG file.

using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
using Leadtools.Forms.DocumentWriters; 
using Leadtools.Svg; 
using Leadtools.Document.Writer; 
public void SvgDocumentExample() 
   // input directory 
   string inDir = LEAD_VARS.ImagesDir; 
   // output directory 
   string outDir = Path.Combine(LEAD_VARS.ImagesDir, "svgpages"); 
   if (!Directory.Exists(outDir)) 
   using (var codecs = new RasterCodecs()) 
      // Set 300 as the default value for loading document files 
      codecs.Options.RasterizeDocument.Load.Resolution = 300; 
      codecs.ThrowExceptionsOnInvalidImages = false; 
      // Get all the files from input directory 
      foreach (var srcFileName in Directory.EnumerateFiles(inDir)) 
         Console.WriteLine("Checking {0}", srcFileName); 
         using (var info = codecs.GetInformation(srcFileName, false)) 
            // We can load as SVG if its document or vector (skipping SVG files themselves) 
            if (info.Format != RasterImageFormat.Unknown && // valid format 
               info.Format != RasterImageFormat.Svg && // not svg 
               (info.Document.IsDocumentFile || // a document 
               info.Vector.IsVectorFile)) // or vector 
               // try to load the first page as SVG 
                  using (SvgDocument svgDocument = codecs.LoadSvg(srcFileName, 1, null) as SvgDocument) 
                     // Save it to disk 
                     string name = Path.GetFileName(srcFileName).Replace(".", "-"); 
                     name = Path.ChangeExtension(name, "svg"); 
                     string dstFileName = Path.Combine(outDir, name); 
                     Console.WriteLine("Saving to {0}", dstFileName); 
                     svgDocument.SaveToFile(dstFileName, null); 
               catch (Exception ex) 
static class LEAD_VARS 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.io.PrintStream; 
import java.nio.file.FileVisitOption; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.util.stream.Stream; 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.document.writer.*; 
import leadtools.svg.*; 
public void svgDocumentExample() { 
   String LEAD_VARS_ImagesDir = "C:\\LEADTOOLS23\\Resources\\Images"; 
   // input directory 
   String inDir = LEAD_VARS_ImagesDir; 
   // output directory 
   String outDir = combine(LEAD_VARS_ImagesDir, "svgpages"); 
   File outDirr = new File(outDir); 
   if (!outDirr.exists()) { 
   RasterCodecs codecs = new RasterCodecs(); 
   // Set 300 as the default value for loading document files 
   // Get all the files from input directory 
   try (Stream<Path> stream = Files.walk(Paths.get(inDir), FileVisitOption.FOLLOW_LINKS) 
         .filter(Files::isRegularFile)) { 
      stream.forEach(file -> { 
         System.out.println("Checking " + file.toString()); 
         CodecsImageInfo info = codecs.getInformation(file.toString(), false); 
         // We can load as SVG if its document or vector (skipping SVG files themselves) 
         if (info.getFormat() != RasterImageFormat.UNKNOWN // valid format 
               && info.getFormat() != RasterImageFormat.SVG // not svg 
               && (info.getDocument().isDocumentFile() // a document 
                     || info.getVector().isVectorFile())) { // or vector 
            SvgDocument svgDocument = (SvgDocument) codecs.loadSvg(file.toString(), 1, null); 
            // Change file extension 
            int i = file.getFileName().toString().lastIndexOf('.'); 
            String dstFileName = outDirr.toString() + "-" + file.getFileName().toString().substring(0, i) + ".svg"; 
            // Save the file 
            System.out.println("Saving to " + dstFileName); 
            svgDocument.saveToFile(dstFileName, null); 
            assertTrue(new File(dstFileName).exists()); 
   } catch (Exception e) { 

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Svg Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.