←Select platform

AnnSerializeObjectEventArgs Class

Summary
Represents the load and save options event data for annotation codecs.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class AnnSerializeObjectEventArgs : EventArgs 
@interface LTAnnSerializeObjectEventArgs : NSObject 
public class AnnSerializeObjectEvent extends LeadEvent 
public: 
   ref class AnnSerializeObjectEventArgs : EventArgs 
class AnnSerializeObjectEventArgs(EventArgs): 
Remarks

AnnSerializeObjectEventArgs is the data type for the following events:

Example
C#
Java
using Leadtools.Annotations.Automation; 
using Leadtools.Annotations.Engine; 
using Leadtools.Annotations.Rendering; 
 
public void AnnCodecs_AnnSerializeOptions() 
{ 
   // Create a new annotation container, 8.5 by 11 inches 
   AnnContainer container = new AnnContainer(); 
   // Size must be in annotation units (1/720 of an inch) 
   container.Size = LeadSizeD.Create(8.5 * 720, 11 * 720); 
 
   double inch = 720.0; 
   // Add a red line object, from 1in 1in to 2in 2in 
   AnnPolylineObject lineObj = new AnnPolylineObject(); 
   lineObj.Points.Add(LeadPointD.Create(1 * inch, 1 * inch)); 
   lineObj.Points.Add(LeadPointD.Create(2 * inch, 2 * inch)); 
   lineObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthD.Create(1)); 
   container.Children.Add(lineObj); 
 
   // Add a blue on yellow rectangle from 3in 3in to 4in 4in 
   AnnRectangleObject rectObj = new AnnRectangleObject(); 
   rectObj.Rect = LeadRectD.Create(3 * inch, 3 * inch, 1 * inch, 1 * inch); 
   rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthD.Create(1)); 
   rectObj.Fill = AnnSolidColorBrush.Create("Yellow"); 
   container.Children.Add(rectObj); 
 
   // Show the container 
   ShowContainer("Before save", container); 
 
   // Create the codecs object to save and load annotations 
   AnnCodecs codecs = new AnnCodecs(); 
 
   // Create a new instance of AnnSrializeOptions and Hook to the SerializeObject event 
   AnnSerializeOptions serializeOptions = new AnnSerializeOptions(); 
   serializeOptions.SerializeObject += serializeOptions_SerializeObject; 
 
   // Set it as our deserialize options 
   codecs.SerializeOptions = serializeOptions; 
 
   // Save the container 
   string destFileName = @"container.xml"; 
   codecs.Save(destFileName, container, AnnFormat.Annotations, 1); 
 
   // delete the container 
   container = null; 
 
   // Load the container we just saved 
   container = codecs.Load(destFileName, 1); 
 
   // Show it 
   ShowContainer("After load", container); 
} 
 
void serializeOptions_SerializeObject(object sender, AnnSerializeObjectEventArgs e) 
{ 
   AnnObject annObj = e.AnnObject; 
   if (annObj.Id == AnnObject.PolylineObjectId) 
   { 
      Debug.WriteLine("skipping a polyline during save"); 
      e.SkipObject = true; 
   } 
} 
 
import java.io.File; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.io.FileOutputStream; 
import java.io.FileWriter; 
import java.util.Scanner; 
 
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.annotations.engine.*; 
 
 
public void annCodecsAnnSerializeOptions() throws IOException { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
   // Create a new annotation container, 8.5 by 11 inches 
   AnnContainer container = new AnnContainer(); 
 
   // Size must be in annotation units (1/720 of an inch) 
   container.setSize(LeadSizeD.create(8.5 * 720, 11 * 720)); 
 
   double inch = 720.0; 
 
   // Add a red line object, from 1in 1in to 2in 2in 
   AnnPolylineObject lineObj = new AnnPolylineObject(); 
   lineObj.getPoints().add(LeadPointD.create(1 * inch, 1 * inch)); 
   lineObj.getPoints().add(LeadPointD.create(2 * inch, 2 * inch)); 
   lineObj.setStroke(AnnStroke.create(AnnSolidColorBrush.create("Red"), 
         LeadLengthD.create(1))); 
   container.getChildren().add(lineObj); 
 
   // Add a blue on yellow rectangle from 3in 3in to 4in 4in 
   AnnRectangleObject rectObj = new AnnRectangleObject(); 
   rectObj.setRect(LeadRectD.create(3 * inch, 3 * inch, 1 * inch, 1 * inch)); 
   rectObj.setStroke(AnnStroke.create(AnnSolidColorBrush.create("Blue"), 
         LeadLengthD.create(1))); 
   rectObj.setFill(AnnSolidColorBrush.create("Yellow")); 
   container.getChildren().add(rectObj); 
 
   // Show the container 
   showContainer("Before save", container); 
 
   // Create the codecs object to save and load annotations 
   AnnCodecs codecs = new AnnCodecs(); 
 
   // Create a new instance of AnnSrializeOptions and Hook to the SerializeObject 
   // event 
   AnnSerializeOptions serializeOptions = new AnnSerializeOptions(); 
   serializeOptions.addSerializeObjectListener(serializeOptions_SerializeObject); 
 
   // Set it as our deserialize options 
   codecs.setSerializeOptions(serializeOptions); 
 
   AnnContainer[] containers = new AnnContainer[1]; 
   containers[0] = container; 
 
   // Save the container 
   String destFileName = combine(LEAD_VARS_IMAGES_DIR, "container.xml"); 
   FileWriter writer = new FileWriter(destFileName); 
 
   // Write the xml data to destFileName 
   codecs.saveAll(writer, containers, AnnFormat.ANNOTATIONS); 
 
   // For testing correctness 
   AnnContainer savedContainer = container; 
 
   // Delete the container 
   container = null; 
 
   // Load the xml data from the file 
   // You can do this or String xmlData = codecs.saveAll(containers, 
   // AnnFormat.ANNOTATIONS); 
   File file = new File(destFileName); 
   Scanner scanner = new Scanner(file); 
   String xmlData = ""; 
   while (scanner.hasNext()) { 
      xmlData += scanner.nextLine(); 
   } 
   scanner.close(); 
   System.out.println("Raw data from file:\n" + xmlData); 
 
   // Load the container we just saved 
   container = codecs.load(xmlData, 1); 
 
   // Show it 
   showContainer("After load", container); 
 
   for (int i = 0; i < container.getChildren().size(); i++) { 
      AnnObject annObj = container.getChildren().get(i); 
      AnnObject savedAnnObj = savedContainer.getChildren().get(i); 
      assertTrue("Check loaded and saved containers are NOT equal - note the skipped object in the listener", 
            !annObj.getFriendlyName().equals(savedAnnObj.getFriendlyName())); 
 
      assertTrue("Command run, image saved", new File(destFileName).exists()); 
      System.out.printf("Command run, image saved to %s\n", destFileName); 
   } 
} 
 
AnnSerializeObjectListener serializeOptions_SerializeObject = new AnnSerializeObjectListener() { 
 
   @Override 
   public void serializeObject(AnnSerializeObjectEvent e) { 
      AnnObject annObj = e.getAnnObject(); 
      if (annObj.getId() == AnnObject.POLYLINE_OBJECT_ID) { 
         System.out.println("skipping a polyline during save"); 
         e.setSkipObject(true); 
      } 
   } 
 
}; 
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.Annotations.Engine Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.