我在默认查看器中使用 PDF.js,每次呈现页面时都需要检测。
这应该在打开、滚动或缩放文档时发生。
据我所知,我只能在我自己显式呈现页面时使用 promises,但是每当呈现页面时是否有回调或要听的东西?实际获取页面(因为 int 就足够了)也非常重要。
最佳答案
对于显式渲染:
好吧,我检查了the source似乎如果您显式呈现页面,您可以使用:
page.render(content).promise.then(function(){
alert("done");
});
文档说明:
Promise for rendering task completion.
隐式渲染
好吧,您始终可以覆盖页面以自己提供事件,渲染不在任何原型(prototype)上,所以这变得非常难看。 render
调用返回 RenderTask
它有一个 InternalRenderTask
它有一个回调。所以你可以通过这样做来欺骗它:
var renderTask = page.render(...); // make any page render anything anywhere
var internal = renderTask.__proto__;
var oldNext = internal._next;
internal._next = function(){
if((this.operatorListIdx === this.operatorList.argsArray.length) &&
this.operatorList.lastChunk){
anyPageRendered(this.pageNumber);
}
// decorate
return oldNext.apply(this, arguments);
};
function anyPageRendered(pageNumber){
// your code here
alert("Rendered " + pageNumber);
}
这是未记录的,可能会中断。没有记录的方法来执行此操作。
关于javascript - PDF.js如何创建页面渲染事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27590545/