diff --git a/src/core/annotation.js b/src/core/annotation.js index 8ee097959..b429cf9f9 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -173,8 +173,9 @@ function getTransformMatrix(rect, bbox, matrix) { class Annotation { constructor(params) { - let dict = params.dict; + const dict = params.dict; + this.setContents(dict.get('Contents')); this.setCreationDate(dict.get('CreationDate')); this.setModificationDate(dict.get('M')); this.setFlags(dict.get('F')); @@ -188,6 +189,7 @@ class Annotation { annotationFlags: this.flags, borderStyle: this.borderStyle, color: this.color, + contents: this.contents, creationDate: this.creationDate, hasAppearance: !!this.appearance, id: params.id, @@ -242,6 +244,19 @@ class Annotation { return this._isPrintable(this.flags); } + /** + * Set the contents. + * + * @public + * @memberof Annotation + * @param {string} contents - Text to display for the annotation or, if the + * type of annotation does not display text, a + * description of the annotation's contents + */ + setContents(contents) { + this.contents = stringToPDFString(contents || ''); + } + /** * Set the creation date. * @@ -623,7 +638,6 @@ class MarkupAnnotation extends Annotation { this.data.hasPopup = dict.has('Popup'); this.data.title = stringToPDFString(dict.get('T') || ''); - this.data.contents = stringToPDFString(dict.get('Contents') || ''); } } diff --git a/test/unit/annotation_spec.js b/test/unit/annotation_spec.js index b26b40de6..05b17b4fd 100644 --- a/test/unit/annotation_spec.js +++ b/test/unit/annotation_spec.js @@ -131,6 +131,20 @@ describe('annotation', function() { dict = ref = null; }); + it('should set and get valid contents', function() { + const annotation = new Annotation({ dict, ref, }); + annotation.setContents('Foo bar baz'); + + expect(annotation.contents).toEqual('Foo bar baz'); + }); + + it('should not set and get invalid contents', function() { + const annotation = new Annotation({ dict, ref, }); + annotation.setContents(undefined); + + expect(annotation.contents).toEqual(''); + }); + it('should set and get a valid creation date', function() { const annotation = new Annotation({ dict, ref, }); annotation.setCreationDate('D:20190422');