我使用PDF.JS将pdf页面呈现到不同的画布元素中。我的要求是捕获画布的输出并将其显示为图像。是否有一些事件知道画布中的pdf页面的渲染是否已经完成。因为当我尝试捕获canvas的输出时,它是空白的。但是pdf页面被正确渲染。看起来我的捕获事件在pdf.js完成渲染过程之前被调用。
这是我的代码:
- page.render(renderContext);
- var myImage = new Image();
- myImage.src = document.getElementById('my-canvas-id').toDataURL();
- $('body').append(myImage);
如果我在FireFox的控制台中执行相同的代码,这可以正常工作。所以这个代码没有什么问题。
只是让你们知道我已经尝试过document.ready和window.load事件。
解决方法
我也在努力解决这个问题。我使用的解决方案是:
- //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
- };