小编Ian*_*son的帖子

Mozilla pdf.js 在多个 render() 操作期间无法使用相同的画布

我正在使用 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)

javascript pdf canvas

5
推荐指数
0
解决办法
1645
查看次数

标签 统计

canvas ×1

javascript ×1

pdf ×1