[api-minor] Add support for PageMode in the API (issue 8657)
Please refer to https://wwwimages2.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf#page=82.
This commit is contained in:
parent
4a74cc418c
commit
16c5d41c5b
@ -313,6 +313,24 @@ var Catalog = (function CatalogClosure() {
|
||||
return pageLabels;
|
||||
},
|
||||
|
||||
get pageMode() {
|
||||
let obj = this.catDict.get('PageMode');
|
||||
let pageMode = 'UseNone'; // Default value.
|
||||
|
||||
if (isName(obj)) {
|
||||
switch (obj.name) {
|
||||
case 'UseNone':
|
||||
case 'UseOutlines':
|
||||
case 'UseThumbs':
|
||||
case 'FullScreen':
|
||||
case 'UseOC':
|
||||
case 'UseAttachments':
|
||||
pageMode = obj.name;
|
||||
}
|
||||
}
|
||||
return shadow(this, 'pageMode', pageMode);
|
||||
},
|
||||
|
||||
get attachments() {
|
||||
var xref = this.xref;
|
||||
var attachments = null, nameTreeRef;
|
||||
|
@ -770,6 +770,10 @@ var WorkerMessageHandler = {
|
||||
}
|
||||
);
|
||||
|
||||
handler.on('GetPageMode', function wphSetupGetPageMode(data) {
|
||||
return pdfManager.ensureCatalog('pageMode');
|
||||
});
|
||||
|
||||
handler.on('GetAttachments',
|
||||
function wphSetupGetAttachments(data) {
|
||||
return pdfManager.ensureCatalog('attachments');
|
||||
|
@ -568,6 +568,13 @@ var PDFDocumentProxy = (function PDFDocumentProxyClosure() {
|
||||
getPageLabels: function PDFDocumentProxy_getPageLabels() {
|
||||
return this.transport.getPageLabels();
|
||||
},
|
||||
/**
|
||||
* @return {Promise} A promise that is resolved with a {string} containing
|
||||
* the PageMode name.
|
||||
*/
|
||||
getPageMode() {
|
||||
return this.transport.getPageMode();
|
||||
},
|
||||
/**
|
||||
* @return {Promise} A promise that is resolved with a lookup table for
|
||||
* mapping named attachments to their content.
|
||||
@ -1939,6 +1946,10 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
||||
return this.messageHandler.sendWithPromise('GetPageLabels', null);
|
||||
},
|
||||
|
||||
getPageMode() {
|
||||
return this.messageHandler.sendWithPromise('GetPageMode', null);
|
||||
},
|
||||
|
||||
getAttachments: function WorkerTransport_getAttachments() {
|
||||
return this.messageHandler.sendWithPromise('GetAttachments', null);
|
||||
},
|
||||
|
@ -630,6 +630,28 @@ describe('api', function() {
|
||||
});
|
||||
});
|
||||
|
||||
it('gets default page mode', function(done) {
|
||||
var loadingTask = getDocument(buildGetDocumentParams('tracemonkey.pdf'));
|
||||
|
||||
loadingTask.promise.then(function(pdfDocument) {
|
||||
return pdfDocument.getPageMode();
|
||||
}).then(function(mode) {
|
||||
expect(mode).toEqual('UseNone');
|
||||
|
||||
loadingTask.destroy().then(done);
|
||||
}).catch(function (reason) {
|
||||
done.fail(reason);
|
||||
});
|
||||
});
|
||||
it('gets non-default page mode', function(done) {
|
||||
doc.getPageMode().then(function(mode) {
|
||||
expect(mode).toEqual('UseOutlines');
|
||||
done();
|
||||
}).catch(function(reason) {
|
||||
done.fail(reason);
|
||||
});
|
||||
});
|
||||
|
||||
it('gets non-existent attachments', function(done) {
|
||||
var promise = doc.getAttachments();
|
||||
promise.then(function (data) {
|
||||
|
Loading…
Reference in New Issue
Block a user