Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.8.30
|
Leadtools.Codecs Namespace > CodecsLoadSvgOptions Class : DropImages Property |
public bool DropImages {get; set;}
'Declaration
Public Property DropImages As Boolean
'Usage
Dim instance As CodecsLoadSvgOptions Dim value As Boolean instance.DropImages = value value = instance.DropImages
public bool DropImages {get; set;}
@property (nonatomic, assign) BOOL dropImages
public boolean getDropImages() public void setDropImages(boolean value)
<br/>get_DropImages();<br/>set_DropImages(value);<br/>Object.defineProperty('DropImages');
Creating an SVG document with text only is desired in certain scenarios. For example, if the application loads SVG document to parse the text values and store them in an external database for text search purposes, then setting the value of DropImages and DropShapes to true while leaving DropText as false will speed up the loading operation and elements not required will be discarded. This is especially useful if the original SVG document contains image elements which may use a lot of memory and disk space.
This example will parse the text found in a PDF document and write it to the console.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Color Imports Leadtools.Drawing Imports Leadtools.Svg Public Shared Sub CodecsLoadSvgOptionsExample() ' The source PDF file Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf") ' SVG sort callback handler Dim sortCallback As SvgSortElementsCallback = _ Function(document As SvgDocument, info As SvgElementInfo, userData As Object) As Boolean ' Is it text? Dim textData As SvgTextData = info.TextData If Not IsNothing(textData) Then ' Yes, print it to the console Console.Write(textData.Text + " ") ' See if its end of line Dim len As Integer = textData.Text.Length If (textData.CharacterFlags(len - 1) And SvgTextCharacterFlags.EndOfLine) = SvgTextCharacterFlags.EndOfLine Then Console.WriteLine() End If End If Return True End Function Using codecs As New RasterCodecs() ' Set 300 as the default value for loading document files codecs.Options.RasterizeDocument.Load.Resolution = 300 ' get the number of pages Dim pageCount As Integer = codecs.GetTotalPages(srcFileName) For pageNumber As Integer = 1 To pageCount ' Load this page as SVG, we are interested in the text only so ' we will ask LEADTOOLS to skip other elements Dim loadSvgOptions As New CodecsLoadSvgOptions() loadSvgOptions.DropText = False loadSvgOptions.DropImages = True loadSvgOptions.DropShapes = True Using svgDocument As SvgDocument = DirectCast(codecs.LoadSvg(srcFileName, pageNumber, Nothing), SvgDocument) ' Sort requires a flat document, so check for that If Not svgDocument.IsFlat Then svgDocument.Flat(Nothing) End If If Not svgDocument.Bounds.IsValid Then svgDocument.CalculateBounds(False) End If Dim sortOptions As New SvgSortOptions() sortOptions.ExtractText = SvgExtractText.Word sortOptions.SortFlags = SvgSortFlags.Default Console.WriteLine("Text for page {0}", pageNumber) svgDocument.SortElements(sortOptions, sortCallback, Nothing) Console.WriteLine("-------------") 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
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Color; using Leadtools.Svg; public static void CodecsLoadSvgOptionsExample() { // The source PDF file string srcFileName = Path.Combine(ImagesPath.Path, "Leadtools.pdf"); // SVG sort callback handler SvgSortElementsCallback sortCallback = (callabackDocument, info, userData) => { // Is it text? SvgTextData textData = info.TextData; if (textData != null) { // Yes, print it to the console Console.Write(textData.Text + " "); // See if its end of line var len = textData.Text.Length; if ((textData.CharacterFlags[len - 1] & SvgTextCharacterFlags.EndOfLine) == SvgTextCharacterFlags.EndOfLine) Console.WriteLine(); } return true; }; using (var codecs = new RasterCodecs()) { // Set 300 as the default value for loading document files codecs.Options.RasterizeDocument.Load.Resolution = 300; // get the number of pages int pageCount = codecs.GetTotalPages(srcFileName); for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++) { // Load this page as SVG, we are interested in the text only so // we will ask LEADTOOLS to skip other elements CodecsLoadSvgOptions loadSvgOptions = new CodecsLoadSvgOptions(); loadSvgOptions.DropText = false; loadSvgOptions.DropImages = true; loadSvgOptions.DropShapes = true; using (SvgDocument svgDocument = codecs.LoadSvg(srcFileName, pageNumber, loadSvgOptions) as SvgDocument) { // Sort requires a flat document, so check for that if (!svgDocument.IsFlat) svgDocument.Flat(null); if (!svgDocument.Bounds.IsValid) svgDocument.CalculateBounds(false); SvgSortOptions sortOptions = new SvgSortOptions(); sortOptions.ExtractText = SvgExtractText.Word; sortOptions.SortFlags = SvgSortFlags.Default; Console.WriteLine("Text for page {0}", pageNumber); svgDocument.SortElements(sortOptions, sortCallback, null); Console.WriteLine("-------------"); } } } }