AnnContainer Object

Summary

Represents an annotation container.

Syntax
TypeScript
JavaScript
functionlt.Annotations.Engine.AnnContainer
classlt.Annotations.Engine.AnnContainer()
Remarks

The annotation container is a rectangular area that holds related annotation objects (AnnObject). In typical applications, the container holds the annotation objects for a page in a document. The size of the container is the same as the page, but in annotation units (1/720 of an inch).

AnnContainercontains the following members:

Member Description
Size,OffsetandPageNumber Properties of the container:Sizeis the size of the container in annotation units (1/720 of an inch).Offsetis an optional offset value (if the container does not start at 0,0) andPageNumberis the optional 1-based page number of the container

Mapper

The object responsible for converting display, container and image coordinates

Children

A collection ofAnnObjects. These are the annotation objects that belong in this container. These objects will be rendered when the container is rendered and edited when the container is automated

SelectionObject

负责特殊注释对象maintaining a list of the objects that are currently selected in the container

Layers

A collection ofAnnLayers for logically grouping common annotation objects.
HitTestPointandHitTestRect Helper method for performing hit-testing on the container and returning any object under a test point or rectangle.
IsVisible,StrokeandFill Optional values (whether it is visible, border stroke, interior filling options) used when rendering this container.

IsEnabled

Optional value indicating whether this container is enabled. If a container is disabled, then it will be used by the automation and considered read-only.

Labels

Optional labels (for example, map legends) that can be used to overlay fixed text on top of the container.

Resize

Method for easily resizing a container to a desired size. Has options.

Example

This example creates a new container, adds a line object and a rectangle object to it, saves it, and then loads it back.

AnnContainer.ts
AnnContainer.js
AnnContainer.html
import{ EngineHelper } from"../../utilities/EngineHelper";exportclassAnnEngine_AnnContainerExample {constructor() {consthelper =newEngineHelper();helper.run(this.run);}run = () => {constinch = 720.0;// Create a new annotation container, 8.5 by 11 incheslet container: lt.Annotations.Engine.AnnContainer =newlt.Annotations.Engine.AnnContainer();// Size must be in annotation units (1/720 of an inch)container.size = lt.LeadSizeD.create(8.5 * inch, 11 * inch);constshowContainer = (message, container) => {let str = message +"\nContainer size: ";/ /添加sizeconstinch = 720;constwidth:number= container.size.width / inch;const高度:number= container.size.height / inch;str += width +" by "+ height +" inches"+"\n";/ /添加objectsstr +="Contains "+ container.children.count +" objects(s)\n";for(let i = 0; i < container.children.count; i++) {constannObj = container.children.item(i);str +="Object: "+ annObj.get_friendlyName() +" at ";for(let j = 0; j < annObj.get_points().get_count(); j++) {constpt: lt.LeadPointD = annObj.points.item(j);constx:number= pt.x / inch;consty:number= pt.y / inch;str +="("+ x +", "+ y +") ";}str +="\n";}alert(str);}// Add a red line object, from 1in 1in to 2in 2inconstlineObj: lt.Annotations.Engine.AnnPolylineObject =newlt.Annotations.Engine.AnnPolylineObject();lineObj.points.add(lt.LeadPointD.create(1 * inch, 1 * inch));lineObj.points.add(lt.LeadPointD.create(2 * inch, 2 * inch));lineObj.stroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("red"), lt.LeadLengthD.create(1));container.children.add(lineObj);// Add a blue on yellow rectangle from 3in 3in to 4in 4inconstrectObj: lt.Annotations.Engine.AnnRectangleObject =newlt.Annotations.Engine.AnnRectangleObject();rectObj.rect = lt.LeadRectD.create(3 * inch, 3 * inch, 1 * inch, 1 * inch);rectObj.stroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("blue"), lt.LeadLengthD.create(1));rectObj.fill = lt.Annotations.Engine.AnnSolidColorBrush.create("yellow");container.children.add(rectObj);// Show the containershowContainer("Before save", container);// Create the codecs object to save and load annotationsconstcodecs: lt.Annotations.Engine.AnnCodecs =newlt.Annotations.Engine.AnnCodecs();// Save the containerconstxmlData:string= codecs.save(container, lt.Annotations.Engine.AnnFormat.annotations,null, 1);// delete the containercontainer =null;// Show information about the data we just savedconstinfo: lt.Annotations.Engine.AnnCodecsInfo = codecs.getInfo(xmlData);let message:string;if(info.format == lt.Annotations.Engine.AnnFormat.annotations) {message ="Version: ";message += info.version;message +=" No. of pages: ";message += info.pages.length;message +=" page nos: ";for(let i = 0; i < info.pages.length; i++) {message += info.pages[i] +" ";}}else{message ="Invalid annotations data";}alert(message);// Load the container we just savedcontainer = codecs.load(xmlData, 1);// Show itshowContainer("After load", container);}}
import{ EngineHelper } from"../../utilities/EngineHelper";exportclassAnnEngine_AnnContainerExample {constructor() {consthelper =newEngineHelper();helper.run(this.run);}run = () => {constinch = 720.0;// Create a new annotation container, 8.5 by 11 incheslet container =newlt.Annotations.Engine.AnnContainer();// Size must be in annotation units (1/720 of an inch)container.size = lt.LeadSizeD.create(8.5 * inch, 11 * inch);constshowContainer = (message, container) => {let str = message +"\nContainer size: ";/ /添加sizeconstinch = 720;constwidth = container.size.width / inch;constheight = container.size.height / inch;str += width +" by "+ height +" inches"+"\n";/ /添加objectsstr +="Contains "+ container.children.count +" objects(s)\n";for(let i = 0; i < container.children.count; i++) {constannObj = container.children.item(i);str +="Object: "+ annObj.get_friendlyName() +" at ";for(let j = 0; j < annObj.get_points().get_count(); j++) {constpt = annObj.points.item(j);constx = pt.x / inch;consty = pt.y / inch;str +="("+ x +", "+ y +") ";}str +="\n";}alert(str);}// Add a red line object, from 1in 1in to 2in 2inconstlineObj =newlt.Annotations.Engine.AnnPolylineObject();lineObj.points.add(lt.LeadPointD.create(1 * inch, 1 * inch));lineObj.points.add(lt.LeadPointD.create(2 * inch, 2 * inch));lineObj.stroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("red"), lt.LeadLengthD.create(1));container.children.add(lineObj);// Add a blue on yellow rectangle from 3in 3in to 4in 4inconstrectObj =newlt.Annotations.Engine.AnnRectangleObject();rectObj.rect = lt.LeadRectD.create(3 * inch, 3 * inch, 1 * inch, 1 * inch);rectObj.stroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create("blue"), lt.LeadLengthD.create(1));rectObj.fill = lt.Annotations.Engine.AnnSolidColorBrush.create("yellow");container.children.add(rectObj);// Show the containershowContainer("Before save", container);// Create the codecs object to save and load annotationsconstcodecs =newlt.Annotations.Engine.AnnCodecs();// Save the containerconstxmlData = codecs.save(container, lt.Annotations.Engine.AnnFormat.annotations,null, 1);// delete the containercontainer =null;// Show information about the data we just savedconstinfo = codecs.getInfo(xmlData);let message;if(info.format == lt.Annotations.Engine.AnnFormat.annotations) {message ="Version: ";message += info.version;message +=" No. of pages: ";message += info.pages.length;message +=" page nos: ";for(let i = 0; i < info.pages.length; i++) {message += info.pages[i] +" ";}}else{message ="Invalid annotations data";}alert(message);// Load the container we just savedcontainer = codecs.load(xmlData, 1);// Show itshowContainer("After load", container);}}
"en">AnnContainer Example | AnnContainer




Either Pan/Zoom or Annotations mode. In annotations mode, drawnewobjects or edit them.

"button"id="exampleButton"value="Example"/>
“imageViewerDiv”/>
Requirements
Target Platforms
Leadtools.Annotations.Engine Assembly
188金宝搏的网址客服|Support|Contact Us|Intellectual Property Notices
© 1991-2021LEAD Technologies, Inc.All Rights Reserved.