Browse Source

Implement support for StrikeOut annotations

Tim van der Meij 9 years ago
parent
commit
c5f4b9750e
  1. 19
      src/core/annotation.js
  2. 30
      src/display/annotation_layer.js
  3. 1
      test/pdfs/.gitignore
  4. BIN
      test/pdfs/annotation-strikeout.pdf
  5. 7
      test/test_manifest.json
  6. 4
      web/annotation_layer_builder.css

19
src/core/annotation.js

@ -99,6 +99,9 @@ AnnotationFactory.prototype = /** @lends AnnotationFactory.prototype */ { @@ -99,6 +99,9 @@ AnnotationFactory.prototype = /** @lends AnnotationFactory.prototype */ {
case 'Underline':
return new UnderlineAnnotation(parameters);
case 'StrikeOut':
return new StrikeOutAnnotation(parameters);
default:
warn('Unimplemented annotation type "' + subtype + '", ' +
'falling back to base annotation');
@ -805,6 +808,22 @@ var UnderlineAnnotation = (function UnderlineAnnotationClosure() { @@ -805,6 +808,22 @@ var UnderlineAnnotation = (function UnderlineAnnotationClosure() {
return UnderlineAnnotation;
})();
var StrikeOutAnnotation = (function StrikeOutAnnotationClosure() {
function StrikeOutAnnotation(parameters) {
Annotation.call(this, parameters);
this.data.annotationType = AnnotationType.STRIKEOUT;
this.data.hasHtml = true;
// PDF viewers completely ignore any border styles.
this.data.borderStyle.setWidth(0);
}
Util.inherit(StrikeOutAnnotation, Annotation, {});
return StrikeOutAnnotation;
})();
exports.Annotation = Annotation;
exports.AnnotationBorderStyle = AnnotationBorderStyle;
exports.AnnotationFactory = AnnotationFactory;

30
src/display/annotation_layer.js

@ -75,6 +75,9 @@ AnnotationElementFactory.prototype = @@ -75,6 +75,9 @@ AnnotationElementFactory.prototype =
case AnnotationType.UNDERLINE:
return new UnderlineAnnotationElement(parameters);
case AnnotationType.STRIKEOUT:
return new StrikeOutAnnotationElement(parameters);
default:
throw new Error('Unimplemented annotation type "' + subtype + '"');
}
@ -630,6 +633,33 @@ var UnderlineAnnotationElement = ( @@ -630,6 +633,33 @@ var UnderlineAnnotationElement = (
return UnderlineAnnotationElement;
})();
/**
* @class
* @alias StrikeOutAnnotationElement
*/
var StrikeOutAnnotationElement = (
function StrikeOutAnnotationElementClosure() {
function StrikeOutAnnotationElement(parameters) {
AnnotationElement.call(this, parameters);
}
Util.inherit(StrikeOutAnnotationElement, AnnotationElement, {
/**
* Render the strikeout annotation's HTML element in the empty container.
*
* @public
* @memberof StrikeOutAnnotationElement
* @returns {HTMLSectionElement}
*/
render: function StrikeOutAnnotationElement_render() {
this.container.className = 'strikeoutAnnotation';
return this.container;
}
});
return StrikeOutAnnotationElement;
})();
/**
* @typedef {Object} AnnotationLayerParameters
* @property {PageViewport} viewport

1
test/pdfs/.gitignore vendored

@ -202,3 +202,4 @@ @@ -202,3 +202,4 @@
!annotation-link-text-popup.pdf
!annotation-text-without-popup.pdf
!annotation-underline.pdf
!annotation-strikeout.pdf

BIN
test/pdfs/annotation-strikeout.pdf

Binary file not shown.

7
test/test_manifest.json

@ -2645,6 +2645,13 @@ @@ -2645,6 +2645,13 @@
"type": "eq",
"annotations": true
},
{ "id": "annotation-strikeout",
"file": "pdfs/annotation-strikeout.pdf",
"md5": "6624e6b5bedd2f2855b6ab12bbf93c57",
"rounds": 1,
"type": "eq",
"annotations": true
},
{ "id": "issue6108",
"file": "pdfs/issue6108.pdf",
"md5": "8961cb55149495989a80bf0487e0f076",

4
web/annotation_layer_builder.css

@ -72,3 +72,7 @@ @@ -72,3 +72,7 @@
.annotationLayer .underlineAnnotation {
cursor: pointer;
}
.annotationLayer .strikeoutAnnotation {
cursor: pointer;
}

Loading…
Cancel
Save