【发布时间】:2014-08-03 09:30:50
【问题描述】:
我现在正在尝试将包含多个页面的整个 pdf 文件呈现到我的网页中,并且一个画布对应一个页面。虽然我可以将代码放入 then() Promise 中以解决单页呈现后的问题,但我发现我无法使用 $.when 函数来检测所有页面都已呈现。我当前的解决方案是逐页渲染页面并在最后一页的 then() Promise 中运行我的代码。希望有其他解决方案!
谢谢!
这是不起作用的代码:
var renderArray = new Array();
for (var pageNo = 0; pageNo < pdfPageArray.length; pageNo++)// All pages extracted by PDF.JS are stored in pdfPageArray
{
var page = pdfPageArray[pageNo];
var viewport = page.getViewport(printScale);
var canvas = document.createElement('canvas');
$(canvas).css({width:"100%",height:"100%"});
var outputScale = getOutputScale(context);
canvas.width = (Math.floor(viewport.width) * outputScale.sx) | 0;
canvas.height = (Math.floor(viewport.height) * outputScale.sy) | 0;
$(printPageDiv).append(canvas);
var context = canvas.getContext("2d");
var renderContext = {
canvasContext: context,
viewport: viewport
};
renderArray.push(page.render(renderContext));
}
return $.when.apply($, renderArray);//It seems this when function doesn't work
【问题讨论】: