我正在尝试在for循环上使用pdf.js渲染PDF页面。 现在只有最后一页正在呈现,并且在控制台上出现错误:
”未捕获(承诺)错误:在执行期间无法使用同一画布 多个render()操作。使用其他画布或确保以前的 操作被取消或完成。在 InternalRenderTask.initializeGraphics(api.js:2500)“
有人知道为什么会发生麻痹以及如何解决吗?
我试图查看其他线程,但找不到可行的解决方案。
代码:
<script src="/pdf-js/build/pdf.js"></script>
<script>
var pdfurl = document.getElementById("input_10_1").value;
pdfjsLib.getDocument(pdfurl).then(doc => {
for (var i = 0; i < doc._pdfInfo.numPages; i++)
{
var dataFileNumber = i+1;
$(".files-container").append('<div class="file-thumbnail available" draggable="false" data-file-number="'+dataFileNumber+'" id="container-number-'+(dataFileNumber)+'"><canvas id="canvas-number-'+(dataFileNumber)+'"></canvas></div>');
var container = document.getElementById('container-number-'+dataFileNumber);
var myCanvas = document.getElementById('canvas-number-'+dataFileNumber);
doc.getPage(parseInt(dataFileNumber)).then(page => {
var viewport = page.getViewport(1);
var scale = container.clientWidth / viewport.width * 0.8;
var context = myCanvas.getContext("2d");
viewport = page.getViewport(scale);
myCanvas.height = viewport.height;
myCanvas.width = viewport.width;
page.render({canvasContext: context , viewport: viewport});
});
}
</script>