我正在使用 pdf.js 在引导模式中显示 .pdf 文件。第一次它工作正常,但如果我关闭模式,再次将其打开,然后尝试转到下一页,我会收到此错误:
Cannot use the same canvas during multiple render() operations.
Run Code Online (Sandbox Code Playgroud)
据我了解,它试图再次渲染到同一画布上,这是有道理的,因为我只是隐藏了模态,而不是取消渲染任务。也就是说,我不知道如何阻止它。呼唤
ctx.clearRect(0, 0, canvas.width, canvas.height);
Run Code Online (Sandbox Code Playgroud)
似乎不起作用。我该如何解决
代码如下:
function openPDF(path, pageNumber) {
var pdfDoc = null,
currentPage = 1,
pageNum = parseInt(pageNumber),
pageRendering = false,
pageNumPending = null,
scale = 1,
canvas = document.getElementById('pdf'),
ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvas.width, canvas.height);
pdfjsLib.getDocument(path)
.then(function (pdfDoc_) {
$("#pdfModal").modal();
$("#pdfModal").on('hide.bs.modal', function () {
//ctx.clearRect(0, 0, canvas.width, canvas.height);
//pdfDoc = null;
//renderContext = null;
//renderTask._internalRenderTask.cancel();
});
pdfDoc = pdfDoc_;
$("#page_count").text(pdfDoc.numPages);
if …Run Code Online (Sandbox Code Playgroud)