Leadtools.Annotations.Core Namespace : AnnDeserializeOptions Class |
public class AnnDeserializeOptions
Public Class AnnDeserializeOptions
public sealed class AnnDeserializeOptions
@interface LTAnnDeserializeOptions : NSObject
public class AnnDeserializeOptions
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. |
using Leadtools.Annotations.Automation; using Leadtools.Annotations.Core; using Leadtools.Codecs; using Leadtools.WinForms; public void AnnCodecs_AnnDeserializeOptions() { // 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(); // Save the container string destFileName = @"container.xml"; codecs.Save(destFileName, container, AnnFormat.Annotations, 1); // delete the container container = null; // Create a new instance of AnnDeserializeOptions and Hook to the DeserializeObject and DeserializeObjectError events AnnDeserializeOptions deserializeOptions = new AnnDeserializeOptions(); deserializeOptions.DeserializeObject += deserializeOptions_DeserializeObject; deserializeOptions.DeserializeObjectError += deserializeOptions_DeserializeObjectError; // Set it as our deserialize options codecs.DeserializeOptions = deserializeOptions; // Load the container we just saved container = codecs.Load(destFileName, 1); // Show it ShowContainer("After load", container); } void deserializeOptions_DeserializeObjectError(object sender, AnnSerializeObjectEventArgs e) { Debug.WriteLine(e.Error.Message); } void deserializeOptions_DeserializeObject(object sender, AnnSerializeObjectEventArgs e) { Debug.WriteLine("loading object of type: " + e.TypeName); }
using Leadtools.Converters; using Leadtools.Annotations.Automation; using Leadtools.Controls; using Leadtools.Annotations.Core; using Leadtools.Codecs; [TestMethod] public async Task AnnCodecs_AnnDeserializeOptions() { // 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 = LeadSizeDHelper.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(LeadPointDHelper.Create(1 * inch, 1 * inch)); lineObj.Points.Add(LeadPointDHelper.Create(2 * inch, 2 * inch)); lineObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthDHelper.Create(1)); container.Children.Add(lineObj); // Add a blue on yellow rectangle from 3in 3in to 4in 4in AnnRectangleObject rectObj = new AnnRectangleObject(); rectObj.Rect = LeadRectDHelper.Create(3 * inch, 3 * inch, 1 * inch, 1 * inch); rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthDHelper.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(); // Save the container string destFileName = @"container.xml"; StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName); await codecs.SaveAsync(saveFile, container, AnnFormat.Annotations, 1); // delete the container container = null; // Create a new instance of AnnDeserializeOptions and Hook to the DeserializeObject and DeserializeObjectError events AnnDeserializeOptions deserializeOptions = new AnnDeserializeOptions(); deserializeOptions.DeserializeObject += deserializeOptions_DeserializeObject; deserializeOptions.DeserializeObjectError += deserializeOptions_DeserializeObjectError; // Set it as our deserialize options codecs.DeserializeOptions = deserializeOptions; // Load the container we just saved container = await codecs.LoadAsync(saveFile, 1); // Show it ShowContainer("After load", container); } void deserializeOptions_DeserializeObjectError(object sender, AnnSerializeObjectEventArgs e) { Debug.WriteLine(e.Error.Message); } void deserializeOptions_DeserializeObject(object sender, AnnSerializeObjectEventArgs e) { Debug.WriteLine("loading object of type: " + e.TypeName); }