From 724add2ffde5ce10e98764448c0c2b986e4d4417 Mon Sep 17 00:00:00 2001 From: vyv03354 Date: Sat, 2 Feb 2013 02:09:12 +0900 Subject: [PATCH] Make an effort to adhere the spec 7.6.3.2 --- src/api.js | 2 +- src/crypto.js | 1 + src/worker.js | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/api.js b/src/api.js index 148e0efaf..689a3885f 100644 --- a/src/api.js +++ b/src/api.js @@ -295,7 +295,7 @@ var PDFPageProxy = (function PDFPageProxyClosure() { } var gfx = new CanvasGraphics(params.canvasContext, this.commonObjs, - this.objs, params.textLayer); + this.objs, !this.pageInfo.disableTextLayer && params.textLayer); try { this.display(gfx, params.viewport, complete, continueCallback); } catch (e) { diff --git a/src/crypto.js b/src/crypto.js index c643e8276..9ffca919f 100644 --- a/src/crypto.js +++ b/src/crypto.js @@ -560,6 +560,7 @@ var CipherTransformFactory = (function CipherTransformFactoryClosure() { var ownerPassword = stringToBytes(dict.get('O')); var userPassword = stringToBytes(dict.get('U')); var flags = dict.get('P'); + this.disableTextLayer = !(flags & 16); var revision = dict.get('R'); var encryptMetadata = algorithm == 4 && // meaningful when V is 4 dict.get('EncryptMetadata') !== false; // makes true as default value diff --git a/src/worker.js b/src/worker.js index f485ccc63..ae32cf3e3 100644 --- a/src/worker.js +++ b/src/worker.js @@ -212,11 +212,13 @@ var WorkerMessageHandler = { handler.on('GetPageRequest', function wphSetupGetPage(data) { var pageNumber = data.pageIndex + 1; var pdfPage = pdfModel.getPage(pageNumber); + var encrypt = pdfModel.xref.encrypt; var page = { pageIndex: data.pageIndex, rotate: pdfPage.rotate, ref: pdfPage.ref, - view: pdfPage.view + view: pdfPage.view, + disableTextLayer: encrypt ? encrypt.disableTextLayer : false }; handler.send('GetPage', {pageInfo: page}); });