function Leadtools.Annotations.Core.AnnDeserializeOptions()
This class is used as the type for AnnCodecs.DeserializeOptions and contains the following members:
Member | Description |
---|---|
DeserializeObject |
Event to trigger for each annotation object being loaded. Allows you to monitor and skip any object. |
DeserializeObjectError |
Event to trigger when an error occurs during loading an annotation object. Allows you to handle the error or skip it. |
This example creates a container, adds both line and rectangle objects to it and saves it. Then it show hows to monitor the objects being loaded.
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(); // Save the container var xmlData = codecs.save(container, lt.Annotations.Core.AnnFormat.annotations, null, 1); // delete the container container = null; // Create a new instance of AnnDeserializeOptions and Hook to the DeserializeObject and DeserializeObjectError events var deserializeOptions = new lt.Annotations.Core.AnnDeserializeOptions(); deserializeOptions.add_deserializeObject(function(sender, e) { // e is of type AnnSerializeObjectEventArgs alert("loading object of type: " + e.get_typeName()); }); deserializeOptions.add_deserializeObjectError(function(sender, e) { // e is of type AnnSerializeObjectEventArgs alert(e.get_error().message); }); // Set it as our deserialize options codecs.set_deserializeOptions(deserializeOptions); // 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); },