Implement support for Highlight annotations

This commit is contained in:
Tim van der Meij 2016-01-01 15:31:46 +01:00
parent 8ed369211a
commit 6ef7120a04
6 changed files with 58 additions and 0 deletions

View File

@ -96,6 +96,9 @@ AnnotationFactory.prototype = /** @lends AnnotationFactory.prototype */ {
case 'Popup':
return new PopupAnnotation(parameters);
case 'Highlight':
return new HighlightAnnotation(parameters);
case 'Underline':
return new UnderlineAnnotation(parameters);
@ -795,6 +798,22 @@ var PopupAnnotation = (function PopupAnnotationClosure() {
return PopupAnnotation;
})();
var HighlightAnnotation = (function HighlightAnnotationClosure() {
function HighlightAnnotation(parameters) {
Annotation.call(this, parameters);
this.data.annotationType = AnnotationType.HIGHLIGHT;
this.data.hasHtml = true;
// PDF viewers completely ignore any border styles.
this.data.borderStyle.setWidth(0);
}
Util.inherit(HighlightAnnotation, Annotation, {});
return HighlightAnnotation;
})();
var UnderlineAnnotation = (function UnderlineAnnotationClosure() {
function UnderlineAnnotation(parameters) {
Annotation.call(this, parameters);

View File

@ -72,6 +72,9 @@ AnnotationElementFactory.prototype =
case AnnotationType.POPUP:
return new PopupAnnotationElement(parameters);
case AnnotationType.HIGHLIGHT:
return new HighlightAnnotationElement(parameters);
case AnnotationType.UNDERLINE:
return new UnderlineAnnotationElement(parameters);
@ -609,6 +612,33 @@ var PopupElement = (function PopupElementClosure() {
return PopupElement;
})();
/**
* @class
* @alias HighlightAnnotationElement
*/
var HighlightAnnotationElement = (
function HighlightAnnotationElementClosure() {
function HighlightAnnotationElement(parameters) {
AnnotationElement.call(this, parameters);
}
Util.inherit(HighlightAnnotationElement, AnnotationElement, {
/**
* Render the highlight annotation's HTML element in the empty container.
*
* @public
* @memberof HighlightAnnotationElement
* @returns {HTMLSectionElement}
*/
render: function HighlightAnnotationElement_render() {
this.container.className = 'highlightAnnotation';
return this.container;
}
});
return HighlightAnnotationElement;
})();
/**
* @class
* @alias UnderlineAnnotationElement

View File

@ -204,3 +204,4 @@
!annotation-underline.pdf
!annotation-strikeout.pdf
!annotation-squiggly.pdf
!annotation-highlight.pdf

Binary file not shown.

View File

@ -2667,6 +2667,13 @@
"type": "eq",
"annotations": true
},
{ "id": "annotation-highlight",
"file": "pdfs/annotation-highlight.pdf",
"md5": "e13e198e3a69c32dc9ebdc704d3105e1",
"rounds": 1,
"type": "eq",
"annotations": true
},
{ "id": "issue6108",
"file": "pdfs/issue6108.pdf",
"md5": "8961cb55149495989a80bf0487e0f076",

View File

@ -69,6 +69,7 @@
padding-top: 0.2em;
}
.annotationLayer .highlightAnnotation,
.annotationLayer .underlineAnnotation,
.annotationLayer .squigglyAnnotation,
.annotationLayer .strikeoutAnnotation {