1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-22 16:18:08 +02:00

Merge pull request #6675 from Snuffleupagus/getAnnotations-intent

[api-minor] Let `getAnnotations` fetch all annotations by default, unless an intent is specified
This commit is contained in:
Yury Delendik 2015-11-24 12:11:51 -06:00
commit 4b243cdd89
6 changed files with 55 additions and 17 deletions

View file

@ -252,10 +252,16 @@ var Page = (function PageClosure() {
});
},
getAnnotationsData: function Page_getAnnotationsData() {
getAnnotationsData: function Page_getAnnotationsData(intent) {
var annotations = this.annotations;
var annotationsData = [];
for (var i = 0, n = annotations.length; i < n; ++i) {
if (intent) {
if (!(intent === 'display' && annotations[i].viewable) &&
!(intent === 'print' && annotations[i].printable)) {
continue;
}
}
annotationsData.push(annotations[i].data);
}
return annotationsData;
@ -268,7 +274,7 @@ var Page = (function PageClosure() {
for (var i = 0, n = annotationRefs.length; i < n; ++i) {
var annotationRef = annotationRefs[i];
var annotation = annotationFactory.create(this.xref, annotationRef);
if (annotation && (annotation.viewable || annotation.printable)) {
if (annotation) {
annotations.push(annotation);
}
}

View file

@ -399,7 +399,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
handler.on('GetDestination',
function wphSetupGetDestination(data) {
return pdfManager.ensureCatalog('getDestination', [ data.id ]);
return pdfManager.ensureCatalog('getDestination', [data.id]);
}
);
@ -447,7 +447,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
handler.on('GetAnnotations', function wphSetupGetAnnotations(data) {
return pdfManager.getPage(data.pageIndex).then(function(page) {
return pdfManager.ensure(page, 'getAnnotationsData', []);
return pdfManager.ensure(page, 'getAnnotationsData', [data.intent]);
});
});

View file

@ -649,6 +649,16 @@ var PDFDocumentProxy = (function PDFDocumentProxyClosure() {
* @property {string} fontFamily - possible font family
*/
/**
* Page annotation parameters.
*
* @typedef {Object} GetAnnotationsParameters
* @param {string} intent - Determines the annotations that will be fetched,
* can be either 'display' (viewable annotations) or 'print'
* (printable annotations).
* If the parameter is omitted, all annotations are fetched.
*/
/**
* Page render parameters.
*
@ -737,12 +747,17 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
return new PDFJS.PageViewport(this.view, scale, rotate, 0, 0);
},
/**
* @param {GetAnnotationsParameters} params - Annotation parameters.
* @return {Promise} A promise that is resolved with an {Array} of the
* annotation objects.
*/
getAnnotations: function PDFPageProxy_getAnnotations() {
if (!this.annotationsPromise) {
this.annotationsPromise = this.transport.getAnnotations(this.pageIndex);
getAnnotations: function PDFPageProxy_getAnnotations(params) {
var intent = (params && params.intent) || null;
if (!this.annotationsPromise || this.annotationsIntent !== intent) {
this.annotationsPromise = this.transport.getAnnotations(this.pageIndex,
intent);
this.annotationsIntent = intent;
}
return this.annotationsPromise;
},
@ -1470,9 +1485,11 @@ var WorkerTransport = (function WorkerTransportClosure() {
return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref });
},
getAnnotations: function WorkerTransport_getAnnotations(pageIndex) {
return this.messageHandler.sendWithPromise('GetAnnotations',
{ pageIndex: pageIndex });
getAnnotations: function WorkerTransport_getAnnotations(pageIndex, intent) {
return this.messageHandler.sendWithPromise('GetAnnotations', {
pageIndex: pageIndex,
intent: intent,
});
},
getDestinations: function WorkerTransport_getDestinations() {
@ -1480,7 +1497,7 @@ var WorkerTransport = (function WorkerTransportClosure() {
},
getDestination: function WorkerTransport_getDestination(id) {
return this.messageHandler.sendWithPromise('GetDestination', { id: id } );
return this.messageHandler.sendWithPromise('GetDestination', { id: id });
},
getAttachments: function WorkerTransport_getAttachments() {