};
this.xref = xref;
this.ref = ref;
- this.errorback = null;
+
+ this.ctx = null;
+ this.callback = null;
}
constructor.prototype = {
try {
self.display(gfx, self.callback);
} catch (e) {
- if (self.errorback)
- self.errorback(e);
- if (self.callback) self.callback(e.toString());
- throw e;
++ if (self.callback)
++ self.callback(e);
+ else
+ throw e;
}
});
};
}
}.bind(this));
- if (page.errorback)
- page.errorback(data.error);
+ messageHandler.on('page_error', function pdfDocError(data) {
+ var page = this.pageCache[data.pageNum];
++ if (page.callback)
++ page.callback(data.error);
+ else
+ throw data.error;
+ }, this);
+
setTimeout(function pdfDocFontReadySetTimeout() {
messageHandler.send('doc', this.data);
this.workerReadyPromise.resolve(true);
page.startRendering(
ctx,
- function nextPageStartRendering() {
- snapshotCurrentPage(task, false);
- },
- function errorNextPageStartRendering(e) {
- snapshotCurrentPage(task, 'render : ' + e.message);
- function nextPageStartRendering(e) {
- snapshotCurrentPage(task, (!failure && e) ?
- ('render : ' + e) : failure);
++ function nextPageStartRendering(error) {
++ var failureMessage = false;
++ if (error)
++ failureMessage = 'render : ' + error.message;
++ snapshotCurrentPage(task, failureMessage);
}
);
} catch (e) {
var container = document.getElementById('viewer');
while (container.hasChildNodes())
container.removeChild(container.lastChild);
-
+
- var pdf = new PDFJS.PDFDoc(data);
+ var pdf;
+ try {
+ pdf = new PDFJS.PDFDoc(data);
+ } catch (e) {
+ this.error('An error occurred while reading the PDF.', e);
+ }
var pagesCount = pdf.numPages;
document.getElementById('numPages').innerHTML = pagesCount;
document.getElementById('pageNumber').max = pagesCount;
ctx.translate(-this.x * scale, -this.y * scale);
stats.begin = Date.now();
- this.content.startRendering(ctx, (function pageViewDrawCallback() {
- this.updateStats();
- if (this.onAfterDraw)
- this.onAfterDraw();
- }).bind(this), textLayer);
+ this.content.startRendering(ctx,
- (function pageViewDrawCallback() {
++ (function pageViewDrawCallback(error) {
++ if (error)
++ PDFView.error('An error occurred while rendering the page.', error);
+ this.updateStats();
+ if (this.onAfterDraw)
+ this.onAfterDraw();
- }).bind(this),
- function pageViewErrorback(e) {
- PDFView.error('An error occurred while rendering the page.', e);
- }
++ }).bind(this), textLayer
+ );
setupLinks(this.content, this.scale);
div.setAttribute('data-loaded', true);