Reset canvas state before drawing annotations
Conflicts: src/core.js
This commit is contained in:
parent
67eb3bbc68
commit
336aa38f4a
@ -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;
|
||||
})();
|
||||
PDFJS.Annotation = Annotation;
|
||||
|
@ -1515,6 +1515,15 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
|
||||
this.restore();
|
||||
},
|
||||
|
||||
beginAnnotations: function CanvasGraphics_beginAnnotations() {
|
||||
this.save();
|
||||
this.current = new CanvasExtraState();
|
||||
},
|
||||
|
||||
endAnnotations: function CanvasGraphics_endAnnotations() {
|
||||
this.restore();
|
||||
},
|
||||
|
||||
beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform,
|
||||
matrix) {
|
||||
this.save();
|
||||
|
34
src/core.js
34
src/core.js
@ -175,32 +175,18 @@ var Page = (function PageClosure() {
|
||||
var pageData = datas[0];
|
||||
var pageQueue = pageData.queue;
|
||||
var annotations = datas[1];
|
||||
|
||||
var ensurePromises = [];
|
||||
for (var i = 0, n = annotations.length; i < n; ++i) {
|
||||
var ensurePromise = pdfManager.ensure(annotations[i],
|
||||
'getOperatorList',
|
||||
[partialEvaluator]);
|
||||
ensurePromises.push(ensurePromise);
|
||||
if (annotations.length === 0) {
|
||||
PartialEvaluator.optimizeQueue(pageQueue);
|
||||
promise.resolve(pageData);
|
||||
return;
|
||||
}
|
||||
|
||||
Promise.all(ensurePromises).then(function(listPromises) {
|
||||
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);
|
||||
|
||||
promise.resolve(pageData);
|
||||
}, reject);
|
||||
var dependencies = pageData.dependencies;
|
||||
var annotationsReadyPromise = Annotation.appendToOperatorList(
|
||||
annotations, pageQueue, pdfManager, dependencies, partialEvaluator);
|
||||
annotationsReadyPromise.then(function () {
|
||||
PartialEvaluator.optimizeQueue(pageQueue);
|
||||
promise.resolve(pageData);
|
||||
}, reject);
|
||||
}, reject);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user