Expose the optional UserUnit entry as a page property

This commit is contained in:
Sean Burke 2016-11-21 14:39:04 -07:00
parent 8a1ed8ab1f
commit f76cd2ce43
4 changed files with 25 additions and 3 deletions

View File

@ -42,6 +42,7 @@ var error = sharedUtil.error;
var info = sharedUtil.info;
var isArray = sharedUtil.isArray;
var isArrayBuffer = sharedUtil.isArrayBuffer;
var isNum = sharedUtil.isNum;
var isString = sharedUtil.isString;
var shadow = sharedUtil.shadow;
var stringToBytes = sharedUtil.stringToBytes;
@ -67,6 +68,7 @@ var AnnotationFactory = coreAnnotation.AnnotationFactory;
var Page = (function PageClosure() {
var DEFAULT_USER_UNIT = 1.0;
var LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];
function Page(pdfManager, xref, pageIndex, pageDict, ref, fontCache) {
@ -138,6 +140,14 @@ var Page = (function PageClosure() {
return shadow(this, 'mediaBox', obj);
},
get userUnit() {
var obj = this.getPageProp('UserUnit');
if (!isNum(obj) || obj <= 0) {
obj = DEFAULT_USER_UNIT;
}
return shadow(this, 'userUnit', obj);
},
get view() {
var mediaBox = this.mediaBox;
var cropBox = this.getInheritedPageProp('CropBox');

View File

@ -747,14 +747,17 @@ var WorkerMessageHandler = {
return pdfManager.getPage(data.pageIndex).then(function(page) {
var rotatePromise = pdfManager.ensure(page, 'rotate');
var refPromise = pdfManager.ensure(page, 'ref');
var userUnitPromise = pdfManager.ensure(page, 'userUnit');
var viewPromise = pdfManager.ensure(page, 'view');
return Promise.all([rotatePromise, refPromise, viewPromise]).then(
function(results) {
return Promise.all([
rotatePromise, refPromise, userUnitPromise, viewPromise
]).then(function(results) {
return {
rotate: results[0],
ref: results[1],
view: results[2]
userUnit: results[2],
view: results[3]
};
});
});

View File

@ -747,6 +747,12 @@ var PDFPageProxy = (function PDFPageProxyClosure() {
get ref() {
return this.pageInfo.ref;
},
/**
* @return {number} The default size of units in 1/72nds of an inch.
*/
get userUnit() {
return this.pageInfo.userUnit;
},
/**
* @return {Array} An array of the visible portion of the PDF page in the
* user space units - [x1, y1, x2, y2].

View File

@ -769,6 +769,9 @@ describe('api', function() {
it('gets ref', function () {
expect(page.ref).toEqual({ num: 15, gen: 0 });
});
it('gets userUnit', function () {
expect(page.userUnit).toEqual(1.0);
});
it('gets view', function () {
expect(page.view).toEqual([0, 0, 595.28, 841.89]);
});