Asynchronously loads a page from a stream containing an image, document or vector file as SVG.
public static Task<ISvgDocument> LoadSvgAsync(
this RasterCodecs rasterCodecs,
ILeadStream stream,
int pageNumber,
CodecsLoadSvgOptions options
)
rasterCodecs
RasterCodecs object to perform the operation.
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.
A Task
that represents the asynchronous operation. TResult
: The SVG document representation of the page.
This topic is part of RasterCodecs
support for .NET async/await
support. Refer to RasterCodecs Async Operations for more information.
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).
To determine whether a file or stream can be loaded as SVG, use CanLoadSvgAsync.
To load as SVG from a file or stream directly, use LoadSvg.
For more information, refer to Working With SVG.
This example will load a page from a URL as SVG:
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
public async void LoadSvg_AsyncExample()
{
// For .NET Framework: Add a reference to Leadtools.Async to get the async support as extension methods
// For .NET Standard: async support is included.
// Address of a document thats supports loading as SVG, for example, a PDF file
string address = @"https://demo.leadtools.com/images/pdf/leadtools.pdf";
Uri uri = new Uri(address);
using (RasterCodecs codecs = new RasterCodecs())
{
// Set 300 as the default value for loading document files
codecs.Options.RasterizeDocument.Load.Resolution = 300;
// Create an ILeadStream object to the URI
using (ILeadStream leadStream = await LeadStream.Factory.FromUri(uri))
{
// Load the first page as SVG
using (ISvgDocument svg = await codecs.LoadSvgAsync(leadStream, 1, null))
{
Debug.WriteLine("Loading from {0} is done", uri);
// Cast the generic ISvgDocument interface it to SvgDocument so we can use it.
SvgDocument svgDocument = svg as SvgDocument;
// Show its size
if (!svgDocument.Bounds.IsValid)
svgDocument.CalculateBounds(false);
Debug.WriteLine("Bounds: {0}", svgDocument.Bounds.Bounds);
svgDocument.Dispose();
}
}
}
}
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 loadSvgAsyncExample() throws URISyntaxException, IOException {
// Address of a document thats supports loading as SVG, for example, a PDF file
String address = "https://demo.leadtools.com/images/pdf/leadtools.pdf";
URI uri = new URI(address);
RasterCodecs codecs = new RasterCodecs();
// Set 300 as the default value for loading document files
codecs.getOptions().getRasterizeDocument().getLoad().setResolution(300);
// Create an ILeadStream object to the URI - await
ILeadStream leadStream = LeadStreamFactory.create(uri);
// Load the first page as SVG - await
codecs.addLoadSvgAsyncCompletedListener(new CodecsLoadSvgAsyncCompletedListener() {
@Override
public void onLoadSvgAsyncCompleted(CodecsLoadSvgAsyncCompletedEvent e) {
System.out.println("Loading is done");
// Cast the generic ISvgDocument interface it to SvgDocument so we can use it.
SvgDocument svgDocument = (SvgDocument) e.getDocument();
// Show its size
if (!svgDocument.getBounds().isValid())
svgDocument.calculateBounds(false);
System.out.printf("Bounds: %s%n" + svgDocument.getBounds().getBounds());
svgDocument.dispose();
}
});
codecs.loadSvgAsync(leadStream, 1, null, null);
leadStream.close();
}
For .NET Framework: A reference to the Leadtools.Async.dll assembly is required to use this functionality.
For .NET Standard: This functionality is included in the Leadtools.Codecs.dll assembly.
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document