Merge pull request #3305 from yurydelendik/annotation-clear-state
Reset canvas state before drawing annotations
This commit is contained in:
commit
10ffc8bc99
@ -240,6 +240,46 @@ var Annotation = (function AnnotationClosure() {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Annotation.appendToOperatorList = function Annotation_appendToOperatorList(
|
||||||
|
annotations, pageQueue, pdfManager, dependencies, partialEvaluator) {
|
||||||
|
|
||||||
|
function reject(e) {
|
||||||
|
annotationsReadyPromise.reject(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
var annotationsReadyPromise = new Promise();
|
||||||
|
|
||||||
|
var ensurePromises = [];
|
||||||
|
for (var i = 0, n = annotations.length; i < n; ++i) {
|
||||||
|
var ensurePromise = pdfManager.ensure(annotations[i],
|
||||||
|
'getOperatorList',
|
||||||
|
[partialEvaluator]);
|
||||||
|
ensurePromises.push(ensurePromise);
|
||||||
|
}
|
||||||
|
|
||||||
|
Promise.all(ensurePromises).then(function(listPromises) {
|
||||||
|
Promise.all(listPromises).then(function(datas) {
|
||||||
|
var fnArray = pageQueue.fnArray;
|
||||||
|
var argsArray = pageQueue.argsArray;
|
||||||
|
fnArray.push('beginAnnotations');
|
||||||
|
argsArray.push([]);
|
||||||
|
for (var i = 0, n = datas.length; i < n; ++i) {
|
||||||
|
var annotationData = datas[i];
|
||||||
|
var annotationQueue = annotationData.queue;
|
||||||
|
Util.concatenateToArray(fnArray, annotationQueue.fnArray);
|
||||||
|
Util.concatenateToArray(argsArray, annotationQueue.argsArray);
|
||||||
|
Util.extendObj(dependencies, annotationData.dependencies);
|
||||||
|
}
|
||||||
|
fnArray.push('endAnnotations');
|
||||||
|
argsArray.push([]);
|
||||||
|
|
||||||
|
annotationsReadyPromise.resolve();
|
||||||
|
}, reject);
|
||||||
|
}, reject);
|
||||||
|
|
||||||
|
return annotationsReadyPromise;
|
||||||
|
};
|
||||||
|
|
||||||
return Annotation;
|
return Annotation;
|
||||||
})();
|
})();
|
||||||
PDFJS.Annotation = Annotation;
|
PDFJS.Annotation = Annotation;
|
||||||
|
@ -1647,6 +1647,15 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
|
|||||||
this.restore();
|
this.restore();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
beginAnnotations: function CanvasGraphics_beginAnnotations() {
|
||||||
|
this.save();
|
||||||
|
this.current = new CanvasExtraState();
|
||||||
|
},
|
||||||
|
|
||||||
|
endAnnotations: function CanvasGraphics_endAnnotations() {
|
||||||
|
this.restore();
|
||||||
|
},
|
||||||
|
|
||||||
beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform,
|
beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform,
|
||||||
matrix) {
|
matrix) {
|
||||||
this.save();
|
this.save();
|
||||||
|
34
src/core.js
34
src/core.js
@ -175,32 +175,18 @@ var Page = (function PageClosure() {
|
|||||||
var pageData = datas[0];
|
var pageData = datas[0];
|
||||||
var pageQueue = pageData.queue;
|
var pageQueue = pageData.queue;
|
||||||
var annotations = datas[1];
|
var annotations = datas[1];
|
||||||
|
if (annotations.length === 0) {
|
||||||
var ensurePromises = [];
|
PartialEvaluator.optimizeQueue(pageQueue);
|
||||||
for (var i = 0, n = annotations.length; i < n; ++i) {
|
promise.resolve(pageData);
|
||||||
var ensurePromise = pdfManager.ensure(annotations[i],
|
return;
|
||||||
'getOperatorList',
|
}
|
||||||
[partialEvaluator]);
|
|
||||||
ensurePromises.push(ensurePromise);
|
var dependencies = pageData.dependencies;
|
||||||
}
|
var annotationsReadyPromise = Annotation.appendToOperatorList(
|
||||||
|
annotations, pageQueue, pdfManager, dependencies, partialEvaluator);
|
||||||
Promise.all(ensurePromises).then(function(listPromises) {
|
annotationsReadyPromise.then(function () {
|
||||||
Promise.all(listPromises).then(function(datas) {
|
|
||||||
for (var i = 0, n = datas.length; i < n; ++i) {
|
|
||||||
var annotationData = datas[i];
|
|
||||||
var annotationQueue = annotationData.queue;
|
|
||||||
Util.concatenateToArray(pageQueue.fnArray,
|
|
||||||
annotationQueue.fnArray);
|
|
||||||
Util.concatenateToArray(pageQueue.argsArray,
|
|
||||||
annotationQueue.argsArray);
|
|
||||||
Util.extendObj(pageData.dependencies,
|
|
||||||
annotationData.dependencies);
|
|
||||||
}
|
|
||||||
|
|
||||||
PartialEvaluator.optimizeQueue(pageQueue);
|
PartialEvaluator.optimizeQueue(pageQueue);
|
||||||
|
|
||||||
promise.resolve(pageData);
|
promise.resolve(pageData);
|
||||||
}, reject);
|
|
||||||
}, reject);
|
}, reject);
|
||||||
}, reject);
|
}, reject);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user