mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Annotations - _preparePopup method replaced with MarkupAnnotation base class. This is just refactoring, so it shouldn't break anything. It should move annotation API closer to PDF spec and enable future expansion.
This commit is contained in:
parent
74561f58b5
commit
d96267c30c
1 changed files with 30 additions and 45 deletions
|
@ -397,24 +397,6 @@ class Annotation {
|
|||
this.appearance = normalAppearanceState.get(as.name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare the annotation for working with a popup in the display layer.
|
||||
*
|
||||
* @private
|
||||
* @memberof Annotation
|
||||
* @param {Dict} dict - The annotation's data dictionary
|
||||
*/
|
||||
_preparePopup(dict) {
|
||||
if (!dict.has('C')) {
|
||||
// Fall back to the default background color.
|
||||
this.data.color = null;
|
||||
}
|
||||
|
||||
this.data.hasPopup = dict.has('Popup');
|
||||
this.data.title = stringToPDFString(dict.get('T') || '');
|
||||
this.data.contents = stringToPDFString(dict.get('Contents') || '');
|
||||
}
|
||||
|
||||
loadResources(keys) {
|
||||
return this.appearance.dict.getAsync('Resources').then((resources) => {
|
||||
if (!resources) {
|
||||
|
@ -598,6 +580,22 @@ class AnnotationBorderStyle {
|
|||
}
|
||||
}
|
||||
|
||||
class MarkupAnnotation extends Annotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
const dict = parameters.dict;
|
||||
|
||||
if (!dict.has('C')) {
|
||||
// Fall back to the default background color.
|
||||
this.data.color = null;
|
||||
}
|
||||
|
||||
this.data.hasPopup = dict.has('Popup');
|
||||
this.data.title = stringToPDFString(dict.get('T') || '');
|
||||
this.data.contents = stringToPDFString(dict.get('Contents') || '');
|
||||
}
|
||||
}
|
||||
|
||||
class WidgetAnnotation extends Annotation {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
|
@ -893,7 +891,7 @@ class ChoiceWidgetAnnotation extends WidgetAnnotation {
|
|||
}
|
||||
}
|
||||
|
||||
class TextAnnotation extends Annotation {
|
||||
class TextAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
const DEFAULT_ICON_SIZE = 22; // px
|
||||
|
||||
|
@ -909,7 +907,7 @@ class TextAnnotation extends Annotation {
|
|||
this.data.name = parameters.dict.has('Name') ?
|
||||
parameters.dict.get('Name').name : 'Note';
|
||||
}
|
||||
this._preparePopup(parameters.dict);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -966,7 +964,7 @@ class PopupAnnotation extends Annotation {
|
|||
}
|
||||
}
|
||||
|
||||
class LineAnnotation extends Annotation {
|
||||
class LineAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
|
@ -974,29 +972,26 @@ class LineAnnotation extends Annotation {
|
|||
|
||||
let dict = parameters.dict;
|
||||
this.data.lineCoordinates = Util.normalizeRect(dict.getArray('L'));
|
||||
this._preparePopup(dict);
|
||||
}
|
||||
}
|
||||
|
||||
class SquareAnnotation extends Annotation {
|
||||
class SquareAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.SQUARE;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class CircleAnnotation extends Annotation {
|
||||
class CircleAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.CIRCLE;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class PolylineAnnotation extends Annotation {
|
||||
class PolylineAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
|
@ -1015,8 +1010,6 @@ class PolylineAnnotation extends Annotation {
|
|||
y: rawVertices[i + 1],
|
||||
});
|
||||
}
|
||||
|
||||
this._preparePopup(dict);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1029,16 +1022,15 @@ class PolygonAnnotation extends PolylineAnnotation {
|
|||
}
|
||||
}
|
||||
|
||||
class CaretAnnotation extends Annotation {
|
||||
class CaretAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.CARET;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class InkAnnotation extends Annotation {
|
||||
class InkAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
|
@ -1062,56 +1054,50 @@ class InkAnnotation extends Annotation {
|
|||
});
|
||||
}
|
||||
}
|
||||
this._preparePopup(dict);
|
||||
}
|
||||
}
|
||||
|
||||
class HighlightAnnotation extends Annotation {
|
||||
class HighlightAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.HIGHLIGHT;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class UnderlineAnnotation extends Annotation {
|
||||
class UnderlineAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.UNDERLINE;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class SquigglyAnnotation extends Annotation {
|
||||
class SquigglyAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.SQUIGGLY;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class StrikeOutAnnotation extends Annotation {
|
||||
class StrikeOutAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.STRIKEOUT;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class StampAnnotation extends Annotation {
|
||||
class StampAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
this.data.annotationType = AnnotationType.STAMP;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
class FileAttachmentAnnotation extends Annotation {
|
||||
class FileAttachmentAnnotation extends MarkupAnnotation {
|
||||
constructor(parameters) {
|
||||
super(parameters);
|
||||
|
||||
|
@ -1119,7 +1105,6 @@ class FileAttachmentAnnotation extends Annotation {
|
|||
|
||||
this.data.annotationType = AnnotationType.FILEATTACHMENT;
|
||||
this.data.file = file.serializable;
|
||||
this._preparePopup(parameters.dict);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue