←Select platform

SvgElementInfo Class

Summary
Holds the information of an SVG element.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class SvgElementInfo 
@interface LTSvgElementInfo : NSObject 
public class SvgElementInfo 
public ref class SvgElementInfo  
class SvgElementInfo: 
Remarks

Used in the callback data of SvgDocument.SortElements to store the information of an SVG elements.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Drawing; 
using Leadtools.Forms.DocumentWriters; 
using Leadtools.Svg; 
 
using Leadtools.Document.Writer; 
 
public void SortElementsExample() 
{ 
   // The source PDF file 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf"); 
   string dstFileName = Path.Combine(LEAD_VARS.ImagesDir, "Example.txt"); 
 
   // SVG sort callback handler 
   SvgSortElementsCallback sortCallback = (callabackDocument, info, userData) => 
   { 
      StreamWriter writer = userData as StreamWriter; 
      // Is it text? 
      SvgTextData textData = info.TextData; 
      if (textData != null) 
      { 
         // Yes, print it to the console 
         writer.Write(textData.Text + " "); 
 
         // See if its end of line 
         var len = textData.Text.Length; 
         if ((textData.CharacterFlags[len - 1] & SvgTextCharacterFlags.EndOfLine) == SvgTextCharacterFlags.EndOfLine) 
            writer.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); 
 
      // Create a writer for the output text file 
      using (StreamWriter writer = File.CreateText(dstFileName)) 
      { 
         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.DropShapes = 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, writer); 
            } 
         } 
 
         // Show the text file 
         System.Diagnostics.Process.Start(dstFileName); 
      } 
   } 
} 
 
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 svgDocumentSortElementsExample() { 
   String LEAD_VARS_ImagesDir = "C:\\LEADTOOLS23\\Resources\\Images"; 
   // The source PDF file 
   String srcFilePath = combine(LEAD_VARS_ImagesDir, "Leadtools_pdf.svg"); 
   String dstFilePath = combine(LEAD_VARS_ImagesDir, "Example.txt"); 
 
   // SVG sort callback handler 
   SvgSortElementsCallback sortCallback = (callbackDocument, info, userData) -> { 
      try { 
         FileOutputStream writer = (FileOutputStream) userData; 
         PrintStream printWriter = new PrintStream(writer); 
         // Is it text? 
         SvgTextData textData = info.getTextData(); 
         if (textData.getText() != null) { 
            // Yes, print it to the console 
            printWriter.print(textData.getText() + " "); 
 
            // See if its end of line 
            int length = textData.getText().length(); 
            if ((textData.getCharacterFlags()[length - 1] 
                  & SvgTextCharacterFlags.END_OF_LINE.getValue()) == SvgTextCharacterFlags.END_OF_LINE.getValue()) 
               printWriter.println(); 
         } 
         writer.flush(); 
      } catch (Exception e) { 
         assertFalse(true); 
         e.printStackTrace(); 
      } 
      return true; 
   }; 
 
   RasterCodecs codecs = new RasterCodecs(); 
   // Set 300 as the default value for loading document files 
   codecs.getOptions().getRasterizeDocument().getLoad().setResolution(300); 
   // get the number of pages 
   int pageCount = codecs.getTotalPages(srcFilePath); 
 
   // Create a stream for the output text file 
   try (FileOutputStream fos = new FileOutputStream(dstFilePath)) { 
      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.setDropImages(true); 
         loadSvgOptions.setDropShapes(true); 
 
         SvgDocument svgDocument = (SvgDocument) codecs.loadSvg(srcFilePath, pageNumber, loadSvgOptions); 
         // Sort requires a flat document, so check for that 
         if (!svgDocument.isFlat()) 
            svgDocument.flat(null); 
         if (!svgDocument.getBounds().isValid()) 
            svgDocument.calculateBounds(false); 
 
         SvgSortOptions sortOptions = new SvgSortOptions(); 
         sortOptions.setExtractText(SvgExtractText.WORD.getValue()); 
         sortOptions.setSortFlags(SvgSortFlags.DEFAULT.getValue()); 
         System.out.println("Text for page " + pageNumber); 
         svgDocument.sortElements(sortOptions, sortCallback, fos); 
      } 
   } catch (Exception exception) { 
      assertFalse(true); 
      exception.printStackTrace(); 
   } 
 
   System.out.println(sortCallback); 
 
} 
Requirements

Target Platforms

Help Version 23.0.2024.5.23
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.