Outline fix, destroy, and linting
This commit is contained in:
parent
fd58f04117
commit
3b83a42a91
65
src/api.js
65
src/api.js
@ -1,26 +1,6 @@
|
|||||||
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||||
|
|
||||||
/*
|
|
||||||
PDFDoc.prototype = {
|
|
||||||
destroy: function PDFDoc_destroy() {
|
|
||||||
if (this.worker)
|
|
||||||
this.worker.terminate();
|
|
||||||
|
|
||||||
if (this.fontWorker)
|
|
||||||
this.fontWorker.terminate();
|
|
||||||
|
|
||||||
for (var n in this.pageCache)
|
|
||||||
delete this.pageCache[n];
|
|
||||||
|
|
||||||
delete this.data;
|
|
||||||
delete this.stream;
|
|
||||||
delete this.pdf;
|
|
||||||
delete this.catalog;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function pdfApiWrapper() {
|
(function pdfApiWrapper() {
|
||||||
function WorkerTransport(promise) {
|
function WorkerTransport(promise) {
|
||||||
this.workerReadyPromise = promise;
|
this.workerReadyPromise = promise;
|
||||||
@ -60,7 +40,7 @@
|
|||||||
var messageHandler = new MessageHandler('main', worker);
|
var messageHandler = new MessageHandler('main', worker);
|
||||||
this.messageHandler = messageHandler;
|
this.messageHandler = messageHandler;
|
||||||
|
|
||||||
messageHandler.on('test', function pdfDocTest(supportTypedArray) {
|
messageHandler.on('test', function transportTest(supportTypedArray) {
|
||||||
if (supportTypedArray) {
|
if (supportTypedArray) {
|
||||||
this.worker = worker;
|
this.worker = worker;
|
||||||
this.setupMessageHandler(messageHandler);
|
this.setupMessageHandler(messageHandler);
|
||||||
@ -85,6 +65,13 @@
|
|||||||
this.setupFakeWorker();
|
this.setupFakeWorker();
|
||||||
}
|
}
|
||||||
WorkerTransport.prototype = {
|
WorkerTransport.prototype = {
|
||||||
|
destroy: function WorkerTransport_destroy() {
|
||||||
|
if (this.worker)
|
||||||
|
this.worker.terminate();
|
||||||
|
|
||||||
|
for (var n in this.pageCache)
|
||||||
|
delete this.pageCache[n];
|
||||||
|
},
|
||||||
setupFakeWorker: function WorkerTransport_setupFakeWorker() {
|
setupFakeWorker: function WorkerTransport_setupFakeWorker() {
|
||||||
// If we don't use a worker, just post/sendMessage to the main thread.
|
// If we don't use a worker, just post/sendMessage to the main thread.
|
||||||
var fakeWorker = {
|
var fakeWorker = {
|
||||||
@ -102,17 +89,18 @@
|
|||||||
WorkerMessageHandler.setup(messageHandler);
|
WorkerMessageHandler.setup(messageHandler);
|
||||||
},
|
},
|
||||||
|
|
||||||
setupMessageHandler: function WorkerTransport_setupMessageHandler(messageHandler) {
|
setupMessageHandler:
|
||||||
|
function WorkerTransport_setupMessageHandler(messageHandler) {
|
||||||
this.messageHandler = messageHandler;
|
this.messageHandler = messageHandler;
|
||||||
|
|
||||||
messageHandler.on('doc', function pdfDocPage(data) {
|
messageHandler.on('doc', function transportPage(data) {
|
||||||
var pdfInfo = data.pdfInfo;
|
var pdfInfo = data.pdfInfo;
|
||||||
var pdfDocument = new PdfDocumentWrapper(pdfInfo, this);
|
var pdfDocument = new PdfDocumentWrapper(pdfInfo, this);
|
||||||
this.pdfDocument = pdfDocument;
|
this.pdfDocument = pdfDocument;
|
||||||
this.workerReadyPromise.resolve(pdfDocument)
|
this.workerReadyPromise.resolve(pdfDocument);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
messageHandler.on('getpage', function pdfDocPage(data) {
|
messageHandler.on('getpage', function transportPage(data) {
|
||||||
var pageInfo = data.pageInfo;
|
var pageInfo = data.pageInfo;
|
||||||
var page = new PdfPageWrapper(pageInfo, this);
|
var page = new PdfPageWrapper(pageInfo, this);
|
||||||
this.pageCache[pageInfo.pageNumber] = page;
|
this.pageCache[pageInfo.pageNumber] = page;
|
||||||
@ -122,7 +110,7 @@
|
|||||||
promises[i].resolve(page);
|
promises[i].resolve(page);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
messageHandler.on('page', function pdfDocPage(data) {
|
messageHandler.on('page', function transportPage(data) {
|
||||||
var pageNum = data.pageNum;
|
var pageNum = data.pageNum;
|
||||||
var page = this.pageCache[pageNum - 1];
|
var page = this.pageCache[pageNum - 1];
|
||||||
var depFonts = data.depFonts;
|
var depFonts = data.depFonts;
|
||||||
@ -131,7 +119,7 @@
|
|||||||
page.startRenderingFromOperatorList(data.operatorList, depFonts);
|
page.startRenderingFromOperatorList(data.operatorList, depFonts);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
messageHandler.on('obj', function pdfDocObj(data) {
|
messageHandler.on('obj', function transportObj(data) {
|
||||||
var id = data[0];
|
var id = data[0];
|
||||||
var type = data[1];
|
var type = data[1];
|
||||||
|
|
||||||
@ -165,7 +153,7 @@
|
|||||||
}
|
}
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
messageHandler.on('page_error', function pdfDocError(data) {
|
messageHandler.on('page_error', function transportError(data) {
|
||||||
var page = this.pageCache[data.pageNum];
|
var page = this.pageCache[data.pageNum];
|
||||||
if (page.displayReadyPromise)
|
if (page.displayReadyPromise)
|
||||||
page.displayReadyPromise.reject(data.error);
|
page.displayReadyPromise.reject(data.error);
|
||||||
@ -305,7 +293,8 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
startRenderingFromOperatorList:
|
startRenderingFromOperatorList:
|
||||||
function Page_startRenderingFromOperatorList(operatorList, fonts) {
|
function PdfPageWrapper_startRenderingFromOperatorList(operatorList,
|
||||||
|
fonts) {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.operatorList = operatorList;
|
this.operatorList = operatorList;
|
||||||
|
|
||||||
@ -324,7 +313,7 @@
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
ensureFonts: function Page_ensureFonts(fonts, callback) {
|
ensureFonts: function PdfPageWrapper_ensureFonts(fonts, callback) {
|
||||||
this.stats.time('Font Loading');
|
this.stats.time('Font Loading');
|
||||||
// Convert the font names to the corresponding font obj.
|
// Convert the font names to the corresponding font obj.
|
||||||
for (var i = 0, ii = fonts.length; i < ii; i++) {
|
for (var i = 0, ii = fonts.length; i < ii; i++) {
|
||||||
@ -342,19 +331,10 @@
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
display: function Page_display(gfx, viewport, callback) {
|
display: function PdfPageWrapper_display(gfx, viewport, callback) {
|
||||||
var stats = this.stats;
|
var stats = this.stats;
|
||||||
stats.time('Rendering');
|
stats.time('Rendering');
|
||||||
|
|
||||||
/* REMOVE ???
|
|
||||||
var xref = this.xref;
|
|
||||||
var resources = this.resources;
|
|
||||||
assertWellFormed(isDict(resources), 'invalid page resources');
|
|
||||||
|
|
||||||
gfx.xref = xref;
|
|
||||||
gfx.res = resources;
|
|
||||||
REMOVE END */
|
|
||||||
|
|
||||||
gfx.beginDrawing(viewport);
|
gfx.beginDrawing(viewport);
|
||||||
|
|
||||||
var startIdx = 0;
|
var startIdx = 0;
|
||||||
@ -422,7 +402,7 @@
|
|||||||
},
|
},
|
||||||
getOutline: function() {
|
getOutline: function() {
|
||||||
var promise = new PDFJS.Promise();
|
var promise = new PDFJS.Promise();
|
||||||
var outline = this.pdfInfo.documentOutline;
|
var outline = this.pdfInfo.outline;
|
||||||
promise.resolve(outline);
|
promise.resolve(outline);
|
||||||
return promise;
|
return promise;
|
||||||
},
|
},
|
||||||
@ -435,6 +415,9 @@
|
|||||||
metadata: metadata ? new PDFJS.Metadata(metadata) : null
|
metadata: metadata ? new PDFJS.Metadata(metadata) : null
|
||||||
});
|
});
|
||||||
return promise;
|
return promise;
|
||||||
|
},
|
||||||
|
destroy: function() {
|
||||||
|
this.transport.destroy();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ var WorkerMessageHandler = {
|
|||||||
rotate: pdfPage.rotate,
|
rotate: pdfPage.rotate,
|
||||||
ref: pdfPage.ref,
|
ref: pdfPage.ref,
|
||||||
view: pdfPage.view,
|
view: pdfPage.view,
|
||||||
annotations: pdfPage.getAnnotations(), // REMOVE
|
annotations: pdfPage.getAnnotations()
|
||||||
};
|
};
|
||||||
handler.send('getpage', {pageInfo: page});
|
handler.send('getpage', {pageInfo: page});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user