Test refactoring for async api.
This commit is contained in:
parent
3b83a42a91
commit
5608f8e445
@ -15,7 +15,6 @@
|
|||||||
// all requirements to run parts of pdf.js in a web worker.
|
// all requirements to run parts of pdf.js in a web worker.
|
||||||
// Right now, the requirement is, that an Uint8Array is still an Uint8Array
|
// Right now, the requirement is, that an Uint8Array is still an Uint8Array
|
||||||
// as it arrives on the worker. Chrome added this with version 15.
|
// as it arrives on the worker. Chrome added this with version 15.
|
||||||
globalScope.PDFJS.disableWorker = true;
|
|
||||||
if (!globalScope.PDFJS.disableWorker && typeof Worker !== 'undefined') {
|
if (!globalScope.PDFJS.disableWorker && typeof Worker !== 'undefined') {
|
||||||
var workerSrc = PDFJS.workerSrc;
|
var workerSrc = PDFJS.workerSrc;
|
||||||
if (typeof workerSrc === 'undefined') {
|
if (typeof workerSrc === 'undefined') {
|
||||||
@ -203,7 +202,7 @@
|
|||||||
|
|
||||||
getPage: function WorkerTransport_getPage(n, promise) {
|
getPage: function WorkerTransport_getPage(n, promise) {
|
||||||
if (this.pageCache[n - 1]) {
|
if (this.pageCache[n - 1]) {
|
||||||
promise.resolve(pageCache[n - 1]);
|
promise.resolve(this.pageCache[n - 1]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ((n - 1) in this.pagePromises) {
|
if ((n - 1) in this.pagePromises) {
|
||||||
|
@ -100,13 +100,24 @@ function nextTask() {
|
|||||||
|
|
||||||
getPdf(task.file, function nextTaskGetPdf(data) {
|
getPdf(task.file, function nextTaskGetPdf(data) {
|
||||||
var failure;
|
var failure;
|
||||||
|
function continuation() {
|
||||||
|
task.pageNum = task.firstPage || 1;
|
||||||
|
nextPage(task, failure);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
task.pdfDoc = new PDFJS.PDFDoc(data);
|
var promise = PDFJS.getDocument(data);
|
||||||
|
promise.then(function(doc) {
|
||||||
|
task.pdfDoc = doc;
|
||||||
|
continuation();
|
||||||
|
}, function(e) {
|
||||||
|
failure = 'load PDF doc : ' + e;
|
||||||
|
continuation();
|
||||||
|
});
|
||||||
|
return;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
failure = 'load PDF doc : ' + exceptionToString(e);
|
failure = 'load PDF doc : ' + exceptionToString(e);
|
||||||
}
|
}
|
||||||
task.pageNum = task.firstPage || 1;
|
continuation();
|
||||||
nextPage(task, failure);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,45 +174,43 @@ function nextPage(task, loadError) {
|
|||||||
log(' loading page ' + task.pageNum + '/' + task.pdfDoc.numPages +
|
log(' loading page ' + task.pageNum + '/' + task.pdfDoc.numPages +
|
||||||
'... ');
|
'... ');
|
||||||
var ctx = canvas.getContext('2d');
|
var ctx = canvas.getContext('2d');
|
||||||
page = task.pdfDoc.getPage(task.pageNum);
|
task.pdfDoc.getPage(task.pageNum).then(function(page) {
|
||||||
|
var pdfToCssUnitsCoef = 96.0 / 72.0;
|
||||||
|
// using mediaBox for the canvas size
|
||||||
|
var pageWidth = page.width;
|
||||||
|
var pageHeight = page.height;
|
||||||
|
canvas.width = pageWidth * pdfToCssUnitsCoef;
|
||||||
|
canvas.height = pageHeight * pdfToCssUnitsCoef;
|
||||||
|
clear(ctx);
|
||||||
|
|
||||||
var pdfToCssUnitsCoef = 96.0 / 72.0;
|
// using the text layer builder that does nothing to test
|
||||||
// using mediaBox for the canvas size
|
// text layer creation operations
|
||||||
var pageWidth = page.width;
|
var textLayerBuilder = {
|
||||||
var pageHeight = page.height;
|
beginLayout: function nullTextLayerBuilderBeginLayout() {},
|
||||||
canvas.width = pageWidth * pdfToCssUnitsCoef;
|
endLayout: function nullTextLayerBuilderEndLayout() {},
|
||||||
canvas.height = pageHeight * pdfToCssUnitsCoef;
|
appendText: function nullTextLayerBuilderAppendText(text, fontName,
|
||||||
clear(ctx);
|
fontSize) {}
|
||||||
|
};
|
||||||
// using the text layer builder that does nothing to test
|
var renderContext = {
|
||||||
// text layer creation operations
|
canvasContext: ctx,
|
||||||
var textLayerBuilder = {
|
textLayer: textLayerBuilder,
|
||||||
beginLayout: function nullTextLayerBuilderBeginLayout() {},
|
viewport: page.getViewport(1)
|
||||||
endLayout: function nullTextLayerBuilderEndLayout() {},
|
};
|
||||||
appendText: function nullTextLayerBuilderAppendText(text, fontName,
|
page.render(renderContext).then(function() {
|
||||||
fontSize) {}
|
snapshotCurrentPage(task, false);
|
||||||
};
|
|
||||||
|
|
||||||
page.startRendering(
|
|
||||||
ctx,
|
|
||||||
function nextPageStartRendering(error) {
|
|
||||||
var failureMessage = false;
|
|
||||||
if (error)
|
|
||||||
failureMessage = 'render : ' + error.message;
|
|
||||||
snapshotCurrentPage(task, failureMessage);
|
|
||||||
},
|
},
|
||||||
textLayerBuilder
|
function(error) {
|
||||||
);
|
snapshotCurrentPage(task, 'render : ' + error);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function(error) {
|
||||||
|
snapshotCurrentPage(task, 'render : ' + error);
|
||||||
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
failure = 'page setup : ' + exceptionToString(e);
|
failure = 'page setup : ' + exceptionToString(e);
|
||||||
|
snapshotCurrentPage(task, failure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (failure) {
|
|
||||||
// Skip right to snapshotting if there was a failure, since the
|
|
||||||
// fonts might be in an inconsistent state.
|
|
||||||
snapshotCurrentPage(task, failure);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function snapshotCurrentPage(task, failure) {
|
function snapshotCurrentPage(task, failure) {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
<style type="text/css"></style>
|
<style type="text/css"></style>
|
||||||
<script type="text/javascript" src="/src/core.js"></script>
|
<script type="text/javascript" src="/src/core.js"></script>
|
||||||
<script type="text/javascript" src="/src/util.js"></script>
|
<script type="text/javascript" src="/src/util.js"></script>
|
||||||
|
<script type="text/javascript" src="/src/api.js"></script>
|
||||||
<script type="text/javascript" src="/src/canvas.js"></script>
|
<script type="text/javascript" src="/src/canvas.js"></script>
|
||||||
<script type="text/javascript" src="/src/obj.js"></script>
|
<script type="text/javascript" src="/src/obj.js"></script>
|
||||||
<script type="text/javascript" src="/src/function.js"></script>
|
<script type="text/javascript" src="/src/function.js"></script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user