mirror of
https://github.com/24eme/signaturepdf
synced 2024-06-08 00:42:32 +02:00
Allows to cancel the rendering of a page in case it is not finished and there is a new zoom level
This commit is contained in:
parent
6198c55d3a
commit
9b25ef4c6e
|
@ -10,6 +10,7 @@ var pdfjsLib = window['pdfjs-dist/build/pdf'];
|
||||||
pdfjsLib.GlobalWorkerOptions.workerSrc = '/vendor/pdf.worker.js?legacy';
|
pdfjsLib.GlobalWorkerOptions.workerSrc = '/vendor/pdf.worker.js?legacy';
|
||||||
var nbPDF = 0;
|
var nbPDF = 0;
|
||||||
var pages = [];
|
var pages = [];
|
||||||
|
var pdfRenderTasks = [];
|
||||||
|
|
||||||
var loadPDF = async function(pdfBlob, filename, pdfIndex) {
|
var loadPDF = async function(pdfBlob, filename, pdfIndex) {
|
||||||
let url = await URL.createObjectURL(pdfBlob);
|
let url = await URL.createObjectURL(pdfBlob);
|
||||||
|
@ -131,7 +132,7 @@ var pageRenderAll = function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageRender = function(pageIndex) {
|
var pageRender = async function(pageIndex) {
|
||||||
let page = pages[pageIndex];
|
let page = pages[pageIndex];
|
||||||
let rotation = parseInt(document.querySelector('#input_rotate_'+pageIndex).value);
|
let rotation = parseInt(document.querySelector('#input_rotate_'+pageIndex).value);
|
||||||
let viewport = page.getViewport({scale: 1, rotation: rotation});
|
let viewport = page.getViewport({scale: 1, rotation: rotation});
|
||||||
|
@ -155,9 +156,12 @@ var pageRender = function(pageIndex) {
|
||||||
canvasPDF.height = viewport.height;
|
canvasPDF.height = viewport.height;
|
||||||
canvasPDF.width = viewport.width;
|
canvasPDF.width = viewport.width;
|
||||||
|
|
||||||
page.render({
|
if(pdfRenderTasks[pageIndex]) {
|
||||||
canvasContext: context,
|
pdfRenderTasks[pageIndex].cancel();
|
||||||
viewport: viewport,
|
}
|
||||||
|
pdfRenderTasks[pageIndex] = await page.render({
|
||||||
|
canvasContext: context,
|
||||||
|
viewport: viewport,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue