[]
A popup annotation (PDF 1.3) displays text in a popup window for entry and editing. It shall not appear alone but is associated with a markup annotation, its parent annotation, and shall be used for editing the parent’s text. It shall have no appearance stream or associated actions of its own and shall be identified by the Popup entry in the parent’s annotation dictionary
annotationName: string;
Annotation name (NM entry).
annotationType: AnnotationTypeCode;
Annotation type.
optional appearanceColor: string;
Appearance color.
AnnotationBase
.appearanceColor
optional borderStyle: object;
Annotation's border style.
optional dashArray: number[];
Border dash pattern. Used when the border style is dashed.
horizontalCornerRadius: number;
style: number;
Border style. Possible values: 1 - solid style (default), 2 - dashed style.
verticalCornerRadius: number;
width: number;
Border width.
optional color: string;
Annotation color.
optional contents: string;
The text (or rich text) string that shall be displayed in the pop-up when the annotation is opened.
optional convertToContent: boolean;
Indicates whether the annotation will be converted to content when the document is saved.
AnnotationBase
.convertToContent
creationDate: string;
Creation date.
optional display: "hidden" | "visible";
The field is used for compatibility with Adobe Acrobat Reader.
id: string;
Annotation id.
invisibleFlag: boolean;
true if the annotation is hidden.
optional irtAnnotations: AnnotationBase[];
Internal helper property. Primary annotation's children annotations. Note, the array contains all children annotations, including annotations what is not direct descendant of the primary annotation.
isRichContents: boolean;
Specifies whether or not the RichContent mode is used for the contents property.
locked: boolean;
Specifies whether the annotation can be deleted or its properties (including position and size) can be modified by the user.
var viewer = new DsPdfViewer('#root', { renderInteractiveForms: true , supportApi: { apiUrl: 'api/pdf-viewer', webSocketUrl: false } });
viewer.addDefaultPanels();
viewer.addAnnotationEditorPanel();
viewer.addFormEditorPanel();
viewer.addReplyTool();
viewer.onAfterOpen.register(()=>{
// Lock all text annotations after document open:
const resultArr = await viewer.findAnnotation(1, // 1 - AnnotationTypeCode.TEXT
{ findField: 'annotationType',
pageNumberConstraint: 1, findAll: true });
viewer.updateAnnotations(0, resultArr.map((data)=> { data.annotation.locked = true; return data.annotation; }));
});
// Open Annotations.pdf
viewer.open('Annotations.pdf');
modificationDate: string;
Modification date.
AnnotationBase
.modificationDate
optional opacity: number;
Annotation opacity.
open: boolean;
Specifies whether to open the popup initially.
orderIndex: number;
The field order index.
optional parentAnnotation: AnnotationBase;
Resolved reference to parent annotation.
AnnotationBase
.parentAnnotation
optional parentId: string;
Parent annotation id for popup annotation.
optional popupId: string;
Popup id if any.
printableFlag: boolean;
Specifies whether or not the annotation can be printed.
rect: number[];
The annotation's bounds rectangle: [x1, y1, x2, y2]. (0, 0) is the bottom left corner of the page.
redacted: boolean;
Indicates whether the current annotation has been redacted. Redacted annotations will be removed from the document after saving.
redactedBy: string;
ID of the Redact annotation that was used to redact the current annotation.
referenceAnnotationId: string;
Id of the primary annotation to which this annotation belongs. ("in reply to" value).
AnnotationBase
.referenceAnnotationId
referenceType: "R" | "Group";
R - this annotation is reply to the primary annotation specified by field referenceAnnotationId. Group - annotation should be grouped with primary annotation specified by field referenceAnnotationId.
optional rotate: number;
The number of degrees by which the annotation shall be rotated relative to the page.
optional sharedChanges: object;
Hash object with information about users who change this annotation. key - user name value - UNIX UTC timestamp when changes were added.
[userName: string]: number
optional state:
| AnnotationMarkedStateType
| AnnotationReviewStateType;
Beginning with PDF 1.5, Annotations may have author-specific state associated with them. The state is not specified in the annotation itself but in separate text annotation that refers to the original annotation by means of its 'IRT' ("in reply to") entry.
optional stateModel: AnnotationStateModel;
The state model corresponding to state.
subject: string;
Text representing a short description of the subject being addressed by the annotation. The 'subject' is the meta information property and it can be used to group, sort or filter annotations.
subtype: AnnotationTypeName;
Annotation sub-type. Possible values are: 'Text', 'Link', 'FreeText', 'Line', 'Square', 'Circle', 'Polygon', 'PolyLine', 'Highlight', 'Underline', 'Squiggly', 'Strikeout', 'Stamp', 'Caret', 'Ink', 'Popup', 'FileAttachment', 'Sound', 'Movie', 'Widget', 'Screen', 'PrinterMark', 'TrapNet', 'WaterMark', 'Redact', 'Signature', 'ThreadBead', 'RadioButton', 'Checkbox', 'PushButton', 'Choice', 'TextWidget', 'RichMedia'
textAlignment: TextAlignmentType;
The alignment of the text.
title: string;
The text label that shall be displayed in the title bar of the annotation's popup when open and active. This entry shall identify the user who added the annotation.