LEADTOOLS JavaScript (Leadtools.Annotations.Core)

AnnSerializeOptions Object

Show in webframe
Example 
Members 
Options to use when saving annotation objects.
Syntax
function Leadtools.Annotations.Core.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.

example: function SiteLibrary_DefaultPage$example() {
   // Create a new annotation container, 8.5 by 11 inches
   var container = new lt.Annotations.Core.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.Core.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.Core.AnnStroke.create(lt.Annotations.Core.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.Core.AnnRectangleObject();
   rectObj.set_rect(lt.LeadRectD.create(3 * inch, 3 * inch, 1 * inch, 1 * inch));
   rectObj.set_stroke(lt.Annotations.Core.AnnStroke.create(lt.Annotations.Core.AnnSolidColorBrush.create("blue"), lt.LeadLengthD.create(1)));
   rectObj.set_fill(lt.Annotations.Core.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.Core.AnnCodecs();

   // Create a new instance of AnnSrializeOptions and Hook to the SerializeObject event
   var serializeOptions = new lt.Annotations.Core.AnnSerializeOptions();
   serializeOptions.add_serializeObject(function(sender, e) {
      // e is of type AnnSerializeObjectEventArgs
      var annObj = e.get_annObject();
      if(annObj.get_id() == lt.Annotations.Core.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.Core.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);
},
See Also

Reference

AnnSerializeOptions Members
Leadtools.Annotations.Core Namespace
Annotation Files

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.