public event EventHandler<AnnSerializeObjectEventArgs> DeserializeObjectError public void addDeserializeObjectErrorListener(AnnSerializeObjectListener listener)public void removeDeserializeObjectErrorListener(AnnSerializeObjectListener listener)
public:event EventHandler<AnnSerializeObjectEventArgs^>^ DeserializeObjectError
def DeserializeObjectError(sender,e): # sender: AnnDeserializeOptions e: AnnSerializeObjectEventArgs The event handler receives an argument of type AnnSerializeObjectEventArgs containing data related to this event. The following AnnSerializeObjectEventArgs properties provide information specific to this event.
| Property | Description |
|---|---|
| AnnObject | The annotation object being loaded or saved. |
AnnSerializeObjectEventArgs This event will trigger once for each annotation object being loaded with the AnnSerializeObjectEventArgs event data members containing the following:
| Member | Description |
|---|---|
| AnnSerializeObjectEventArgs.Error |
The error that occurred. |
| AnnSerializeObjectEventArgs.TypeName |
The type name of the AnnObject being loaded. |
| AnnSerializeObjectEventArgs.AnnObject |
The AnnObject being loaded. |
| AnnSerializeObjectEventArgs.SkipObject |
Set to false. You can change this value to true to skip loading this object and continue to the next. |
using Leadtools.Annotations.Automation;using Leadtools.Annotations.Engine;using Leadtools.Annotations.Rendering;public void AnnCodecs_AnnDeserializeOptions(){// Create a new annotation container, 8.5 by 11 inchesAnnContainer 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 2inAnnPolylineObject 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 4inAnnRectangleObject 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 containerShowContainer("Before save", container);// Create the codecs object to save and load annotationsAnnCodecs codecs = new AnnCodecs();// Save the containerstring destFileName = @"container.xml";codecs.Save(destFileName, container, AnnFormat.Annotations, 1);// delete the containercontainer = null;// Create a new instance of AnnDeserializeOptions and Hook to the DeserializeObject and DeserializeObjectError eventsAnnDeserializeOptions deserializeOptions = new AnnDeserializeOptions();deserializeOptions.DeserializeObject += deserializeOptions_DeserializeObject;deserializeOptions.DeserializeObjectError += deserializeOptions_DeserializeObjectError;// Set it as our deserialize optionscodecs.DeserializeOptions = deserializeOptions;// Load the container we just savedcontainer = codecs.Load(destFileName, 1);// Show itShowContainer("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);}
import java.io.File;import java.io.IOException;import java.io.OutputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.util.Scanner;import org.junit.*;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;import static org.junit.Assert.*;import leadtools.*;import leadtools.annotations.engine.*;public void annCodecsAnnDeserializeOptions() throws IOException {final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";// Create a new annotation container, 8.5 by 11 inchesAnnContainer container = new AnnContainer();// Size must be in annotation units (1/720 of an inch)container.setSize(LeadSizeD.create(8.5 * 720, 11 * 720));double inch = 720.0;// Add a red line object, from 1in 1in to 2in 2inAnnPolylineObject lineObj = new AnnPolylineObject();lineObj.getPoints().add(LeadPointD.create(1 * inch, 1 * inch));lineObj.getPoints().add(LeadPointD.create(2 * inch, 2 * inch));lineObj.setStroke(AnnStroke.create(AnnSolidColorBrush.create("Red"),LeadLengthD.create(1)));container.getChildren().add(lineObj);// Add a blue on yellow rectangle from 3in 3in to 4in 4inAnnRectangleObject rectObj = new AnnRectangleObject();rectObj.setRect(LeadRectD.create(3 * inch, 3 * inch, 1 * inch, 1 * inch));rectObj.setStroke(AnnStroke.create(AnnSolidColorBrush.create("Blue"),LeadLengthD.create(1)));rectObj.setFill(AnnSolidColorBrush.create("Yellow"));container.getChildren().add(rectObj);// Show the containershowContainer("Before save", container);// Create the codecs object to save and load annotationsAnnCodecs codecs = new AnnCodecs();AnnContainer[] containers = new AnnContainer[1];containers[0] = container;// Save the containerString destFileName = combine(LEAD_VARS_IMAGES_DIR, "container.xml");FileWriter writer = new FileWriter(destFileName);// Write the xml data to destFileNamecodecs.saveAll(writer, containers, AnnFormat.ANNOTATIONS);// Load the xml data from the file// You can do this or String xmlData = codecs.saveAll(containers,// AnnFormat.ANNOTATIONS);File file = new File(destFileName);Scanner scanner = new Scanner(file);String xmlData = "";while (scanner.hasNext()) {xmlData += scanner.nextLine();}scanner.close();System.out.println("Raw data from file:\n" + xmlData);// For testing correctnessAnnContainer savedContainer = container;// Delete the containercontainer = null;// Create a new instance of AnnDeserializeOptions and Hook to the// DeserializeObject and DeserializeObjectError eventsAnnDeserializeOptions deserializeOptions = new AnnDeserializeOptions();deserializeOptions.addDeserializeObjectListener(deserializeOptions_DeserializeObject);deserializeOptions.addDeserializeObjectErrorListener(deserializeOptions_DeserializeObjectError);// Set it as our deserialize optionscodecs.setDeserializeOptions(deserializeOptions);// Load the container we just savedcontainer = codecs.load(xmlData, 1);// Show itshowContainer("After load", container);for (int i = 0; i < container.getChildren().size(); i++) {AnnObject annObj = container.getChildren().get(i);AnnObject savedAnnObj = savedContainer.getChildren().get(i);assertTrue("Check loaded and saved containers are equal",annObj.getFriendlyName().equals(savedAnnObj.getFriendlyName()));assertTrue("Image unsuccessfully saved", new File(destFileName).exists());System.out.printf("Command run, image saved to %s\n", destFileName);}}AnnSerializeObjectListener deserializeOptions_DeserializeObject = new AnnSerializeObjectListener() {@Overridepublic void serializeObject(AnnSerializeObjectEvent e) {System.out.println("loading object of type: " + e.getTypeName());}};AnnSerializeObjectListener deserializeOptions_DeserializeObjectError = new AnnSerializeObjectListener() {@Overridepublic void serializeObject(AnnSerializeObjectEvent e) {System.out.println(e.getError().getMessage());}};
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
