Leadtools.Annotations.Core Namespace : AnnSerializeOptions Class |
public class AnnSerializeOptions
Public Class AnnSerializeOptions
public sealed class AnnSerializeOptions
@interface LTAnnSerializeOptions : NSObject
public class AnnSerializeOptions
function Leadtools.Annotations.Core.AnnSerializeOptions()
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. |
using Leadtools.Annotations.Automation; using Leadtools.Annotations.Core; using Leadtools.Codecs; using Leadtools.WinForms; 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; } }
using Leadtools.Converters; using Leadtools.Annotations.Automation; using Leadtools.Controls; using Leadtools.Annotations.Core; using Leadtools.Codecs; [TestMethod] public async Task 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 = 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(); // 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"; StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName); await codecs.SaveAsync(saveFile, container, AnnFormat.Annotations, 1); // delete the container container = null; // Load the container we just saved container = await codecs.LoadAsync(saveFile, 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; } }