diff --git a/EnvelopeGenerator.ReceiverUI/wwwroot/js/pdf-viewer.js b/EnvelopeGenerator.ReceiverUI/wwwroot/js/pdf-viewer.js index 6d97f3cf..c1782bc3 100644 --- a/EnvelopeGenerator.ReceiverUI/wwwroot/js/pdf-viewer.js +++ b/EnvelopeGenerator.ReceiverUI/wwwroot/js/pdf-viewer.js @@ -1,13 +1,14 @@ // PDF.js Viewer for Blazor WASM window.pdfViewer = { - pdfDoc: null, - pageNum: 1, - pageRendering: false, - pageNumPending: null, - scale: 1.5, - canvas: null, - ctx: null, - totalPages: 0, +pdfDoc: null, +pageNum: 1, +pageRendering: false, +pageNumPending: null, +scale: 1.5, +canvas: null, +ctx: null, +totalPages: 0, +currentRenderTask: null, async initialize(canvasId, pdfDataUrl) { try { @@ -90,10 +91,17 @@ window.pdfViewer = { viewport: viewport }; - await page.render(renderContext).promise; + if (this.currentRenderTask) { + console.log('Cancelling previous render task'); + this.currentRenderTask.cancel(); + } + + this.currentRenderTask = page.render(renderContext); + await this.currentRenderTask.promise; console.log('Page rendered successfully'); + this.currentRenderTask = null; this.pageRendering = false; if (this.pageNumPending !== null) { @@ -101,7 +109,12 @@ window.pdfViewer = { this.pageNumPending = null; } } catch (error) { - console.error('Error rendering page:', error); + if (error.name === 'RenderingCancelledException') { + console.log('Rendering cancelled, will render pending page'); + } else { + console.error('Error rendering page:', error); + } + this.currentRenderTask = null; this.pageRendering = false; } },