首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何知道PDF.JS是否已经完成渲染?

如何知道PDF.JS是否已经完成渲染?
EN

Stack Overflow用户
提问于 2012-10-02 23:17:06
回答 16查看 33.7K关注 0票数 29

我使用PDF.JS将pdf页面渲染到不同的画布元素中。我的需求是捕获画布的输出并将其显示为图像。是否有一些事件可以知道pdf页面在canvas中的渲染是否已经完成。因为当我尝试捕获canvas的输出时,它是空白的。但是pdf页面被正确地呈现。看起来像是在pdf.js完成呈现过程之前调用了我的捕获事件。

下面是我的代码:

代码语言:javascript
复制
page.render(renderContext);
var myImage = new Image();
myImage.src = document.getElementById('my-canvas-id').toDataURL();
$('body').append(myImage);

如果我在我的FireFox的控制台中执行相同的代码,它就能正常工作。所以这段代码没有任何问题。

只是想让你们知道我已经尝试过document.ready和window.load事件了。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2013-09-03 13:03:24

我也在努力解决这个问题..我使用的解决方案是:

代码语言:javascript
复制
//Step 1: store a refer to the renderer
var pageRendering = page.render(renderContext);
//Step : hook into the pdf render complete event
var completeCallback = pageRendering.internalRenderTask.callback;
pageRendering.internalRenderTask.callback = function (error) {
  //Step 2: what you want to do before calling the complete method                  
  completeCallback.call(this, error);
  //Step 3: do some more stuff
};
票数 21
EN

Stack Overflow用户

发布于 2015-04-01 06:37:44

代码语言:javascript
复制
<script type="text/javascript">
  document.addEventListener("pagesloaded", function(e) {
   //do sth..
  });
</script>

对我很管用

票数 17
EN

Stack Overflow用户

发布于 2013-07-13 21:52:25

在写这篇文章的时候,这确实起作用了。我不确定它是否仍然有效。

PDFJS使用Promises。要做的最简单的事情是:

代码语言:javascript
复制
page.render(renderContext).promise.then(function(){
  document.body.appendChild(canvas);
});
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12693207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档