←Select platform

LoadSvgAsync(Stream,int,CodecsLoadSvgOptions,object) Method

Summary
Loads a page from a stream containing an image, document or vector file as SVG asynchronously.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public void LoadSvgAsync( 
   Stream stream, 
   int pageNumber, 
   CodecsLoadSvgOptions options, 
   object userState 
) 
- (void)loadSvgStreamAsync:(LTLeadStream *)stream  
                      page:(NSInteger)pageNumber  
                   options:(nullable LTCodecsLoadSvgOptions *)options  
                completion:(void (^)(id<ISvgDocument> __nullable svgDocument, NSError * __nullable error))completion 
public Object loadSvgAsync( 
   ILeadStream stream,  
   int pageNumber,  
   CodecsLoadSvgOptions options,  
   Object userState 
) 
public: 
void LoadSvgAsync(  
   Stream^ stream, 
   int pageNumber, 
   CodecsLoadSvgOptions^ options, 
   Object^ userState 
)  
def LoadSvgAsync(self,stream,pageNumber,options,userState): 

Parameters

stream
The stream containing the image data to load.

pageNumber
The 1-based page number.

options
The options used for loading SVG. This can be null.

userState
A user-defined object that is passed to the method invoked when the asynchronous operation completes.

Remarks

NOTE: This topic is part of RasterCodecs Async support using the .NET System.ComponentMode.AsyncOperation model. For .NET async/await, use Task<ISvgDocument> LoadSvgAsync(ILeadStream stream, int pageNumber, CodecsLoadSvgOptions options).

Use this method to load a page from any supported image, document or vector file as SVG (Scalable Vector Graphics). For more information refer LoadSvg(string fileName, int pageNumber, CodecsLoadSvgOptionsOptions).

The RasterCodecs class supports loading image data as SVG asynchronously using the LoadSvgAsync methods. When calling any of these methods, the caller thread will not be blocked and the method will return instantly. When the RasterCodecs object finishes loading the SVG page (or when an error occur), the LoadSvgAsyncCompleted will occur.

The LoadSvgAsyncCompleted event data will contain the SVG page in the CodecsLoadSvgAsyncCompletedEventArgs property.

To determine whether a file or stream can be loaded as SVG, use CanLoadSvg(string fileName) or CanLoadSvg(Stream stream).

To load as SVG asynchronously from a file, use LoadSvgAsync(string fileName, int pageNumber, CodecsLoadSvgOptions options, object userState).

To load as SVG asynchronously from a URI, use LoadSvgAsync(Uri uri, int pageNumber, CodecsLoadSvgOptions options, object userState).

To load as SVG from a file or stream directly, use LoadSvg.

For more information, refer to Working With SVG.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
 
 
public void LoadSvgAsyncExample() 
{ 
   // Address of a document thats supports loading as SVG, for example, a DOCX file 
   string address = @"http://localhost/images/examples/leadtools.docx"; 
 
   EventHandler<CodecsLoadSvgAsyncCompletedEventArgs> loadSvgAsyncCompleted = null; 
 
   loadSvgAsyncCompleted = (sender, e) => 
   { 
      var thisCodecs = sender as RasterCodecs; 
      // Remove the handler 
      thisCodecs.LoadSvgAsyncCompleted -= loadSvgAsyncCompleted; 
 
      Debug.WriteLine("Loading from {0} is done", e.Uri); 
      SvgDocument svgDocument = e.Document as SvgDocument; 
 
      if (svgDocument != null) 
      { 
         // Show its size 
         if (!svgDocument.Bounds.IsValid) 
            svgDocument.CalculateBounds(false); 
 
         Debug.WriteLine("Bounds: {0}", svgDocument.Bounds.Bounds); 
         svgDocument.Dispose(); 
      } 
      else if (e.Error != null) 
      { 
         // Error 
         Debug.WriteLine(e.Error.Message); 
      } 
 
      // Clean up 
      thisCodecs.Dispose(); 
   }; 
 
   var codecs = new RasterCodecs(); 
 
   // Set 300 as the default value for loading document files 
   codecs.Options.RasterizeDocument.Load.Resolution = 300; 
 
   codecs.LoadSvgAsyncCompleted += loadSvgAsyncCompleted; 
   codecs.LoadSvgAsync(new Uri(address), 1, null, null); 
} 
 
import java.io.*; 
import java.net.*; 
import java.nio.file.Paths; 
import java.util.*; 
import java.time.Instant; 
import java.time.Duration; 
 
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.codecs.RasterCodecs.FeedCallbackThunk; 
import leadtools.drawing.internal.*; 
import leadtools.imageprocessing.*; 
import leadtools.imageprocessing.color.ChangeIntensityCommand; 
import leadtools.svg.*; 
 
 
public void loadSvgAsyncCompletedExample() throws URISyntaxException, IOException { 
 
   // Address of a document thats supports loading as SVG, for example, a DOCX file 
   String address = "http://localhost/images/examples/leadtools.docx"; 
 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Set 300 as the default value for loading document files 
   codecs.getOptions().getRasterizeDocument().getLoad().setResolution(300); 
 
   codecs.addLoadSvgAsyncCompletedListener(loadSvgAsyncCompleted); 
   ILeadStream uriStream = LeadStreamFactory.create(new URI(address)); 
   codecs.loadSvgAsync(uriStream, 1, null, null); 
   uriStream.close(); 
} 
 
CodecsLoadSvgAsyncCompletedListener loadSvgAsyncCompleted = new CodecsLoadSvgAsyncCompletedListener() { 
 
   @Override 
   public void onLoadSvgAsyncCompleted(CodecsLoadSvgAsyncCompletedEvent e) { 
      RasterCodecs thisCodecs = (RasterCodecs) e.getSource(); 
      // Remove the handler 
      thisCodecs.removeLoadSvgAsyncCompletedListener(loadSvgAsyncCompleted); 
 
      System.out.println("Loading is done"); 
      SvgDocument svgDocument = (SvgDocument) e.getDocument(); 
 
      if (svgDocument != null) { 
         // Show its size 
         if (!svgDocument.getBounds().isValid()) { 
            svgDocument.calculateBounds(false); 
         } 
         System.out.printf("Bounds: %s", svgDocument.getBounds().getBounds()); 
         svgDocument.dispose(); 
      } else if (e.getError() != null) { 
         // Error 
         System.out.println(e.getError().getMessage()); 
      } 
 
      // Clean up 
      thisCodecs.dispose(); 
   } 
 
}; 
Requirements

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.Codecs Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.