Loads a page from a stream containing image, document or vector file as SVG
public ISvgDocument LoadSvg(
Stream stream,
int pageNumber,
CodecsLoadSvgOptions options
)
Public Overloads Function LoadSvg( _
ByVal stream As Stream, _
ByVal pageNumber As Integer, _
ByVal options As CodecsLoadSvgOptions _
) As ISvgDocument
- (nullable id<ISvgDocument>)loadSvgStream:(LTLeadStream *)stream
page:(NSInteger)pageNumber
options:(nullable LTCodecsLoadSvgOptions *)options
error:(NSError **)error
public ISvgDocument loadSvg(
ILeadStream stream,
int pageNumber,
CodecsLoadSvgOptions options
)
public:
ISvgDocument^ LoadSvg(
Stream^ stream,
int pageNumber,
CodecsLoadSvgOptions^ options
)
stream
The input stream.
pageNumber
1-based page number to load.
options
The options used for loading SVG. This can be null.
SVG document representation of the page.
Use this method to load a page from any supported image, document or vector file as SVG (Scalable Vector Graphics). The following conditions must be met to load a page from a file as SVG:
Condition | Description |
---|---|
The file format is SVG |
SVG can be loaded as SVG |
The file format is document |
Any of the document file formats supported by LEADTOOLS such DOCX/DOC, PPTX/PPT, XLSX/XLS, RTF, TXT, AFP, ICA, etc. These formats will set the CodecsDocumentImageInfo.IsDocumentFile property to true when calling GetInformation |
The file format is vector |
Any of the vector file formats supported by LEADTOOLS such as DXF, DWG, etc. These formats will set the CodecsVectorImageInfo.IsVectorFile property to true when calling GetInformation |
The file format is PDF |
And the PDF file contains more than pure raster data (for example, not scanned PDF file). |
To find out if an input file can be loaded as SVG, use the CanLoadSvg method.
In addition to the usual format filter assembly (Leadtools.Codecs.*), The following additional assemblies may be required to support loading as SVG
Assembly | Description |
---|---|
Leadtools.Svg |
SVG support. Always required |
Leadtools.Vector |
Required if the input document is a vector file |
Leadtools.Pdf |
Required if the input document is a PDF file |
Usually, the returned ISvgDocument is to be casted to Leadtools.Svg.SvgDocument to continue working with the other SVG features, such as retrieving its data, rendering it to a target or saving it to a separate file.
You must check the result SVG document flatness and perform the necessary operation before continuing.
To determine whether a file or stream can be loaded as SVG, use CanLoadSvg(string fileName) or CanLoadSvg(Stream stream).
To load as SVG from a disk file, use LoadSvg(string fileName, int pageNumber, CodecsLoadSvgOptions options).
To load as SVG asynchronously, use LoadSvgAsync.
For more information, refer to Working With SVG.
This example will check a folder of document and images files for SVG support then loads the first page of each supported file and saves the result SVG.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;
using LeadtoolsExamples.Common;
public static void LoadSvgExample()
{
// input directory
string inDir = ImagesPath.Path;
// output directory
string outDir = Path.Combine(ImagesPath.Path, "svgpages");
if (!Directory.Exists(outDir))
Directory.CreateDirectory(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
try
{
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)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Imports Leadtools.Svg
Public Shared Sub LoadSvgExample()
' input directory
Dim inDir As String = LEAD_VARS.ImagesDir
' output directory
Dim outDir As String = Path.Combine(LEAD_VARS.ImagesDir, "svgpages")
If Not Directory.Exists(outDir) Then
Directory.CreateDirectory(outDir)
End If
Using codecs As 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
For Each srcFileName As String In Directory.EnumerateFiles(inDir)
Console.WriteLine("Checking {0}", srcFileName)
Using info As CodecsImageInfo = codecs.GetInformation(srcFileName, False)
' We can load as SVG if its document or vector (skipping SVG files themselves)
If info.Format <> RasterImageFormat.Unknown AndAlso
info.Format <> RasterImageFormat.Svg AndAlso
(info.Document.IsDocumentFile OrElse
info.Vector.IsVectorFile) Then
' try to load the first page as SVG
Try
Using svgDocument As SvgDocument = DirectCast(codecs.LoadSvg(srcFileName, 1, Nothing), SvgDocument)
' Save it to disk
Dim name As String = Path.GetFileName(srcFileName).Replace(".", "-")
name = Path.ChangeExtension(name, "svg")
Dim dstFileName As String = Path.Combine(outDir, name)
Console.WriteLine("Saving to {0}", dstFileName)
svgDocument.SaveToFile(dstFileName, Nothing)
End Using
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End If
End Using
Next
End Using
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
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