diff --git a/src/core/annotation.js b/src/core/annotation.js index a88acaf41..d5ad2e978 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -75,10 +75,11 @@ var Annotation = (function AnnotationClosure() { var data = this.data = {}; data.subtype = dict.get('Subtype').name; - var rect = dict.get('Rect') || [0, 0, 0, 0]; - data.rect = Util.normalizeRect(rect); data.annotationFlags = dict.get('F'); + this.setRectangle(dict.get('Rect')); + data.rect = this.rectangle; + this.setColor(dict.get('C')); data.color = this.color; @@ -91,6 +92,21 @@ var Annotation = (function AnnotationClosure() { } Annotation.prototype = { + /** + * Set the rectangle. + * + * @public + * @memberof Annotation + * @param {Array} rectangle - The rectangle array with exactly four entries + */ + setRectangle: function Annotation_setRectangle(rectangle) { + if (isArray(rectangle) && rectangle.length === 4) { + this.rectangle = Util.normalizeRect(rectangle); + } else { + this.rectangle = [0, 0, 0, 0]; + } + }, + /** * Set the color and take care of color space conversion. * diff --git a/test/unit/annotation_layer_spec.js b/test/unit/annotation_layer_spec.js index 1c45b633f..a8ec90698 100644 --- a/test/unit/annotation_layer_spec.js +++ b/test/unit/annotation_layer_spec.js @@ -7,6 +7,24 @@ describe('Annotation layer', function() { describe('Annotation', function() { + it('should set and get a valid rectangle', function() { + var dict = new Dict(); + dict.set('Subtype', ''); + var annotation = new Annotation({ dict: dict, ref: 0 }); + annotation.setRectangle([117, 694, 164.298, 720]); + + expect(annotation.rectangle).toEqual([117, 694, 164.298, 720]); + }); + + it('should not set and get an invalid rectangle', function() { + var dict = new Dict(); + dict.set('Subtype', ''); + var annotation = new Annotation({ dict: dict, ref: 0 }); + annotation.setRectangle([117, 694, 164.298]); + + expect(annotation.rectangle).toEqual([0, 0, 0, 0]); + }); + it('should reject a color if it is not an array', function() { var dict = new Dict(); dict.set('Subtype', '');