AnnSerializeOptions Object

Summary

Options to use when saving annotation objects.

Syntax
TypeScript
JavaScript
function lt.Annotations.Engine.AnnSerializeOptions 
class lt.Annotations.Engine.AnnSerializeOptions() 

Remarks

This class is used as the type for AnnCodecs.SerializeOptions and contains the following members:

Member Description
SerializeObject
Event to trigger for each annotation object being saved. Allows you to monitor and skip any object.
SaveLockPassword
Controls whether AnnObject.Password of locked annotation objects is saved in the annotation file.

Example

This example creates a container, adds a line and rectangle objects to it. Then skip the line object during save.

TypeScript
JavaScript
example: function SiteLibrary_DefaultPage$example() { 
 
   // Create a new annotation container, 8.5 by 11 inches 
   var container = new lt.Annotations.Engine.AnnContainer(); 
   // Size must be in annotation units (1/720 of an inch) 
   container.set_size(lt.LeadSizeD.create(8.5 * 720, 11 * 720)); 
 
   var inch = 720.0; 
   // Add a red line object, from 1in 1in to 2in 2in 
   var lineObj = new lt.Annotations.Engine.AnnPolylineObject(); 
   lineObj.get_points().add(lt.LeadPointD.create(1 * inch, 1 * inch)); 
   lineObj.get_points().add(lt.LeadPointD.create(2 * inch, 2 * inch)); 
   lineObj.set_stroke(lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("red"), lt.LeadLengthD.create(1))); 
   container.get_children().add(lineObj); 
 
   // Add a blue on yellow rectangle from 3in 3in to 4in 4in 
   var rectObj = new lt.Annotations.Engine.AnnRectangleObject(); 
   rectObj.set_rect(lt.LeadRectD.create(3 * inch, 3 * inch, 1 * inch, 1 * inch)); 
   rectObj.set_stroke(lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("blue"), lt.LeadLengthD.create(1))); 
   rectObj.set_fill(lt.Annotations.Engine.AnnSolidColorBrush.create("yellow")); 
   container.get_children().add(rectObj); 
 
   // Show the container 
   this.showContainer("Before save", container); 
 
   // Create the codecs object to save and load annotations 
   var codecs = new lt.Annotations.Engine.AnnCodecs(); 
 
   // Create a new instance of AnnSrializeOptions and Hook to the SerializeObject event 
   var serializeOptions = new lt.Annotations.Engine.AnnSerializeOptions(); 
   serializeOptions.add_serializeObject(function(sender, e) { 
      // e is of type AnnSerializeObjectEventArgs 
      var annObj = e.get_annObject(); 
      if(annObj.get_id() == lt.Annotations.Engine.AnnObject.polylineObjectId) { 
         alert("skipping a polyline during save"); 
         e.set_skipObject(true); 
      } 
   }); 
 
   // Set it as our deserialize options 
   codecs.set_serializeOptions(serializeOptions); 
 
   // Save the container 
   var xmlData = codecs.save(container, lt.Annotations.Engine.AnnFormat.annotations, null, 1); 
 
   // delete the container 
   container = null; 
 
   // Load the container we just saved 
   container = codecs.load(xmlData, 1); 
 
   // Show it 
   this.showContainer("After load", container); 
}, 
 
showContainer: function SiteLibrary_DefaultPage$showContainer(message, container) { 
   var str = message + "\nContainer size: "; 
 
   // Add the size 
   var inch = 720; 
   var width = container.get_size().get_width() / inch; 
   var height = container.get_size().get_height() / inch; 
   str += width + " by " + height + " inches" + "\n"; 
 
   // Add the objects 
   str += "Contains " + container.get_children().get_count() + " objects(s)\n"; 
   for (var i = 0; i < container.get_children().get_count(); i++) { 
      var annObj = container.get_children().get_item(i); 
 
      str += "Object: " + annObj.get_friendlyName() + " at "; 
      for (var j = 0; j < annObj.get_points().get_count(); j++) { 
         var pt = annObj.get_points().get_item(j); 
         var x = pt.get_x() / inch; 
         var y = pt.get_y() / inch; 
         str += "(" + x + ", " + y + ") "; 
      } 
 
      str += "\n"; 
   } 
 
   alert(str); 
 
}, 
private AnnSerializeOptionsExample(): void { 
   // Create a new annotation container, 8.5 by 11 inches 
   let container: lt.Annotations.Engine.AnnContainer = new lt.Annotations.Engine.AnnContainer(); 
   // Size must be in annotation units (1/720 of an inch) 
   container.size = lt.LeadSizeD.create(8.5 * 720, 11 * 720); 
 
   const showContainer = (message, container) => { 
      let str: string = message + "\nContainer size: "; 
 
      // Add the size 
      const inch: number = 720; 
      const width: number = container.size.width / inch; 
      const height: number = container.size.height / inch; 
      str += width + " by " + height + " inches" + "\n"; 
 
      // Add the objects 
      str += "Contains " + container.children.count + " objects(s)\n"; 
      for (let i = 0; i < container.children.count; i++) { 
         const annObj: lt.Annotations.Engine.AnnObject = container.children.item(i); 
 
         str += "Object: " + annObj.friendlyName + " at "; 
         for (let j = 0; j < annObj.points.count; j++) { 
            const pt: lt.LeadPointD = annObj.points.item(j); 
            const x: number = pt.x / inch; 
            const y: number = pt.y / inch; 
            str += "(" + x + ", " + y + ") "; 
         } 
 
         str += "\n"; 
      } 
 
      alert(str); 
   } 
 
   const inch: number = 720.0; 
   // Add a red line object, from 1in 1in to 2in 2in 
   const lineObj: lt.Annotations.Engine.AnnPolylineObject = new lt.Annotations.Engine.AnnPolylineObject(); 
   lineObj.points.add(lt.LeadPointD.create(1 * inch, 1 * inch)); 
   lineObj.points.add(lt.LeadPointD.create(2 * inch, 2 * inch)); 
   lineObj.stroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("red"), lt.LeadLengthD.create(1)); 
   container.children.add(lineObj); 
 
   // Add a blue on yellow rectangle from 3in 3in to 4in 4in 
   const rectObj: lt.Annotations.Engine.AnnRectangleObject = new lt.Annotations.Engine.AnnRectangleObject(); 
   rectObj.rect = lt.LeadRectD.create(3 * inch, 3 * inch, 1 * inch, 1 * inch); 
   rectObj.stroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("blue"), lt.LeadLengthD.create(1)); 
   rectObj.fill = lt.Annotations.Engine.AnnSolidColorBrush.create("yellow"); 
   container.children.add(rectObj); 
 
   // Show the container 
   showContainer("Before save", container); 
 
   // Create the codecs object to save and load annotations 
   const codecs: lt.Annotations.Engine.AnnCodecs = new lt.Annotations.Engine.AnnCodecs(); 
 
   // Create a new instance of AnnSrializeOptions and Hook to the SerializeObject event 
   const serializeOptions: lt.Annotations.Engine.AnnSerializeOptions = new lt.Annotations.Engine.AnnSerializeOptions(); 
   serializeOptions.add_serializeObject((sender, e) => { 
      // e is of type AnnSerializeObjectEventArgs 
      const annObj: lt.Annotations.Engine.AnnObject = e.annObject; 
      if (annObj.id == lt.Annotations.Engine.AnnObject.polylineObjectId) { 
         alert("skipping a polyline during save"); 
         e.skipObject = true; 
      } 
   }); 
 
   // Set it as our deserialize options 
   codecs.serializeOptions = serializeOptions; 
 
   // Save the container 
   const xmlData: string = codecs.save(container, lt.Annotations.Engine.AnnFormat.annotations, null, 1); 
 
   // delete the container 
   container = null; 
 
   // Load the container we just saved 
   container = codecs.load(xmlData, 1); 
 
   // Show it 
   showContainer("After load", container); 
} 

Requirements

Target Platforms

Help Version 20.0.2019.3.11
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2019 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Annotations.Engine Assembly